1 - n
p = 1, q = n
奇数次选q, q++;
偶数次选p, p--;
直到选了k个数,此时相邻差的绝对值不同个数为k - 1
那么接下来该选的数,将按照上次选的方向直接选就行,也就是剩下的差的绝对值都为1
class Solution { public: vector<int> constructArray(int n, int k) { vector<int> v; int p = 1, q = n; int cnt = 1; while(p <= q) { if(cnt <= k) { if(cnt & 1) v.push_back(p), p++; else v.push_back(q), q--; cnt++; } else { if(cnt & 1) v.push_back(q), q--; else v.push_back(p), p++; } } return v; } };