leetcode

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

1718.cpp (898B)


0 class Solution { 1 bool seen[21] = {0}; 2 vector<int> res = vector(39, 0); 3 4 bool rec(const int n, int crnt) { 5 while (crnt < size(res) && res[crnt]) 6 crnt++; 7 if (crnt == size(res)) return true; 8 9 for (int i = n; i > 1; i--) { 10 if (seen[i] || crnt + i >= size(res) || res[crnt + i]) continue; 11 res[crnt + i] = res[crnt] = i; 12 seen[i] = true; 13 if (rec(n, crnt + 1)) return true; 14 seen[i] = false; 15 res[crnt + i] = 0; 16 } 17 18 if (!seen[1]) { 19 res[crnt] = 1; 20 seen[1] = true; 21 if (rec(n, crnt + 1)) return true; 22 seen[1] = false; 23 } 24 res[crnt] = 0; 25 26 return false; 27 } 28 29 public: 30 vector<int> constructDistancedSequence(const int n) { 31 res.resize(2 * n - 1); 32 rec(n, 0); 33 return res; 34 } 35 };