dengxinyi 6 years ago
parent
commit
cbdcddd4ee
1 changed files with 30 additions and 0 deletions
  1. 30 0
      medium/667.beautiful-arrangement-ii.go

+ 30 - 0
medium/667.beautiful-arrangement-ii.go

@@ -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)
+	if f == 0 {
+		for ; l <= r; l++ {
+			res[i] = l
+			i++
+		}
+	} else {
+		for ; l <= r; r-- {
+			res[i] = r
+			i++
+		}
+	}
+	return res
+}