class Solution {
public int[] constructArray(int n, int k) {
int[] res = new int[n];
for (int i = 0, l = 1, r = n; l <= r; i++)
res[i] = k > 1 ? (k-- % 2 != 0 ? l++ : r--) : (k % 2 != 0? l++ : r--);
return res;
}
}class Solution {
private void reverse(int[] arr, int start, int end) {
while (start < end) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
start++;
end--;
}
}
public int[] constructArray(int n, int k) {
int[] res = new int[n];
for (int i = 1; i <= n; i++) {
res[i - 1] = i;
}
for (int i = 1; i < k; i++) {
reverse(res, i, n - 1);
}
return res;
}
}