做网站一年百万,怎么建设淘宝联盟的网站,wordpress顶部菜单调用,文化建设设计公司网站前言
Day33虽说是一个月#xff0c;但是从第一篇开始实际上已经过了8个月了#xff0c;得抓紧啊
46. 全排列 - 力扣#xff08;LeetCode#xff09;
前面组合就强调过差别了#xff0c;这道题是排序#xff0c;因此每次要从头到尾扫#xff0c;结合used数组 class So…前言
Day33虽说是一个月但是从第一篇开始实际上已经过了8个月了得抓紧啊
46. 全排列 - 力扣LeetCode
前面组合就强调过差别了这道题是排序因此每次要从头到尾扫结合used数组 class Solution {
private:vectorvectorint res;vectorint path;// vectorint used(10); // 私有中vector不支持初始化int used[7] {}; // 私有中静态数组支持初始化void backtracking(vectorint nums){if(path.size() nums.size()){res.push_back(path);return;}for(int i 0; i nums.size(); i){ // 从头开始遍历if(used[i] 1) continue; // 数枝上跳过取过的元素 used[i] 1;path.push_back(nums[i]);backtracking(nums);used[i] 0;path.pop_back();}}
public:vectorvectorint permute(vectorint nums) {backtracking(nums);return res;}
}; 47. 全排列 II - 力扣LeetCode
有重复元素比前一题多两个步骤排序 去重 class Solution {
private:vectorvectorint res;vectorint path;int used[9] {}; // 私有中静态数组支持初始化void backtracking(vectorint nums){if(path.size() nums.size()){res.push_back(path);return;}for(int i 0; i nums.size(); i){ // 从头开始遍历if(used[i] 1 || i 0 used[i - 1] 0 nums[i] nums[i - 1]) continue; // 去重used[i - 1] 0/1都可以通过0更好树层上去重used[i] 1;path.push_back(nums[i]);backtracking(nums);used[i] 0;path.pop_back();}}
public:vectorvectorint permuteUnique(vectorint nums) {sort(nums.begin(), nums.end()); // 先排序backtracking(nums);return res;}
};
后言
搞定咯前面有组合的铺垫之后这两道都好做很多hhh明天结束回溯假装是Life is strange里的MAX伸出双手回溯时间