本文共 926 字,大约阅读时间需要 3 分钟。
class Solution { public: vector> vec; vector > permuteUnique(vector & nums) { //排序 sort(nums.begin(), nums.end()); vector road; vector judge(nums.size(), false); backtrack(nums, road, judge); return vec; } void backtrack(vector & nums, vector & road, vector & judge){ //结束条件 if(road.size() == nums.size()){ vec.push_back(road); return; } for(int i = 0; i < nums.size(); i++){ int data = nums[i]; //做选择的条件 if(judge[i] || (i > 0 && nums[i] == nums[i - 1] && !judge[i - 1])) continue; //做选择 judge[i] = true; road.push_back(data); //遍历下一层 backtrack(nums, road, judge); //撤销节点 road.pop_back(); judge[i] = false; } } };
转载地址:http://vnqgz.baihongyu.com/