@@ -0,0 +1,30 @@
+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)
+ for ; l <= r; l++ {
+ for ; l <= r; r-- {
+ return res
+}