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 }; 18 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 };