Merge branch 'youngyangyang04:master' into master

This commit is contained in:
lingyin
2022-04-08 11:10:56 +08:00
committed by GitHub
2 changed files with 25 additions and 4 deletions

View File

@ -240,7 +240,29 @@ var combine = function(n, k) {
}; };
``` ```
TypeScript
```typescript
function combine(n: number, k: number): number[][] {
let resArr: number[][] = [];
function backTracking(n: number, k: number, startIndex: number, tempArr: number[]): void {
if (tempArr.length === k) {
resArr.push(tempArr.slice());
return;
}
for (let i = startIndex; i <= n - k + 1 + tempArr.length; i++) {
tempArr.push(i);
backTracking(n, k, i + 1, tempArr);
tempArr.pop();
}
}
backTracking(n, k, 1, []);
return resArr;
};
```
C: C:
```c ```c
int* path; int* path;
int pathTop; int pathTop;

View File

@ -87,7 +87,7 @@ class Solution {
private: private:
vector<vector<int>> result; vector<vector<int>> result;
vector<int> path; vector<int> path;
void backtracking(vector<int>& nums, int startIndex, vector<bool>& used) { void backtracking(vector<int>& nums, int startIndex) {
result.push_back(path); result.push_back(path);
unordered_set<int> uset; unordered_set<int> uset;
for (int i = startIndex; i < nums.size(); i++) { for (int i = startIndex; i < nums.size(); i++) {
@ -96,7 +96,7 @@ private:
} }
uset.insert(nums[i]); uset.insert(nums[i]);
path.push_back(nums[i]); path.push_back(nums[i]);
backtracking(nums, i + 1, used); backtracking(nums, i + 1);
path.pop_back(); path.pop_back();
} }
} }
@ -105,9 +105,8 @@ public:
vector<vector<int>> subsetsWithDup(vector<int>& nums) { vector<vector<int>> subsetsWithDup(vector<int>& nums) {
result.clear(); result.clear();
path.clear(); path.clear();
vector<bool> used(nums.size(), false);
sort(nums.begin(), nums.end()); // 去重需要排序 sort(nums.begin(), nums.end()); // 去重需要排序
backtracking(nums, 0, used); backtracking(nums, 0);
return result; return result;
} }
}; };