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