classSolution { public: voidget_combaition(vector<int>& cur, int index, vector<vector<int>>& res, int count, bool* arr, int n, int k){ if (count == k) { res.push_back(cur); return; } if (index > n) return;
for (int i = index; i <= n; i++) { if (arr[i] == 0) { cur.push_back(i); arr[i] = 1; count++; get_combaition(cur, i + 1, res, count, arr, n, k); cur.pop_back(); arr[i] = 0; count--; } } } vector<vector<int>> combine(int n, int k) { vector<vector<int>> res; vector<int> cur; bool arr[n + 1]; memset(arr, 0, n + 1); get_combaition(cur, 1, res, 0, arr, n, k); return res; } };