回溯算法
- 参考博客 https://zhuanlan.zhihu.com/p/93530380
- 46全排列:
class Solution {
public:
vector<vector<int>> res;
void backTrack(vector<int>nums,vector<int>track){
if(nums.size()==track.size()){
res.push_back(track);
return;
}
for(int i=0;i<nums.size();i++){
vector<int>::iterator ret;
ret = std::find(track.begin(), track.end(), nums[i]);
if(ret != track.end()) continue;
track.push_back(nums[i]);
backTrack(nums,track);
track.pop_back();
}
}
vector<vector<int>> permute(vector<int>& nums) {
vector<int> track;
backTrack(nums,track);
return res;
}
};
- 47全排列||
- 39组合之和
- 40组合之和||
- 11正则表达式匹配
- 22括号生成