Beautiful Arrangement II LeetCode solution in C++

1
class Solution {
2
public:
3
vector<int> constructArray(int n, int k) {
4
int diff = n - k;
5
int lo = 1;
6
int hi = n;
7
vector<int> out;
8
int i = 0;
9
// we generate a difference of 1 between subsequent elements for the first
10
// n-k times.
11
while (i < diff) {
12
out.push_back(lo);
13
lo++;
14
i++;
15
}
16
bool flag = true;
17
// Now we go zig zag to generate k unique differences, the last one will be
18
// automatically taken care as the difference between last two elements will
19
// be one which we have already generated above.
20
for (int i = out.size(); i < n; i++) {
21
// flag to alternatively zig zag
22
if (flag) {
23
out.push_back(hi);
24
hi--;
25
flag = false;
26
} else {
27
out.push_back(lo);
28
lo++;
29
flag = true;
30
}
31
}
32
return out;
33
}
34
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0