leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

1238.cpp (782B)


0 class Solution {
1 public:
2 vector<int> circularPermutation(int n, int start) {
3 vector<int> res = {0, 1};
4 int idx = 2;
5 for (int i = 1; i < n; i++) {
6 const int size = 1 << i;
7 for (int j = 1; j <= size; j++) {
8 res.push_back(size | res[size - j]);
9 if (res.back() == start) idx = res.size();
10 }
11 }
12 if (start == 0) return res;
13 reverse(begin(res), begin(res) + idx);
14 reverse(begin(res) + idx, end(res));
15 return res;
16 }
17 };
19 class Solution {
20 public:
21 vector<int> circularPermutation(int n, int start) {
22 vector<int> res;
23 for (int i = 0; i < (1 << n); i++)
24 res.push_back(start ^ i ^ (i >> 1));
25 return res;
26 }
27 };