leetcodeSolution 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);
4 bool rec(const int n, int crnt) {
5 while (crnt < size(res) && res[crnt])
6 crnt++;
7 if (crnt == size(res)) return true;
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 }
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;
26 return false;
27 }
29 public:
30 vector<int> constructDistancedSequence(const int n) {
31 res.resize(2 * n - 1);
32 rec(n, 0);
33 return res;
34 }
35 };