| 123456789101112131415161718192021222324252627282930 | 
							- func constructArray(n int, k int) []int {
 
- 	res := make([]int, n)
 
- 	res[0] = 1
 
- 	l, r, i, f := 2, n, 1, 0
 
- 	for ; k != 1; k-- {
 
- 		if f == 0 {
 
- 			res[i] = r
 
- 			r--
 
- 		} else {
 
- 			res[i] = l
 
- 			l++
 
- 		}
 
- 		i++
 
- 		f ^= 1
 
- 	} // To increase k, we have:
 
- 	//                        _______              _____                ___
 
- 	//   1 2 3 4 5 (k=1) -> 1 5 4 3 2 (k=2) -> 1 5 2 3 4 (k=3) -> 1 5 2 4 3 (k=4)
 
- 	if f == 0 {
 
- 		for ; l <= r; l++ {
 
- 			res[i] = l
 
- 			i++
 
- 		}
 
- 	} else {
 
- 		for ; l <= r; r-- {
 
- 			res[i] = r
 
- 			i++
 
- 		}
 
- 	}
 
- 	return res
 
- }
 
 
  |