LC.P667[优美的排列II]

方法一:脑筋急转弯

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
public int[] constructArray(int n, int k) {
int[] ans = new int[n];
int index = 0;
// 前面部分相差为1
for (int i = 1; i < n - k; ++i) {
ans[index++] = i;
}
for (int i = n - k, j = n; i <= j; ++i, --j) {
ans[index++] = i;
if (i != j) {
ans[index++] = j;
}
}
return ans;
}
}
  • 时间复杂度:$O(n)$
  • 空间复杂度:$O(n)$