LeetCode-- Permutations II
来源:互联网 发布:java实现单例模式 编辑:程序博客网 时间:2024/06/08 15:55
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2] have the following unique permutations:
[
[1,1,2],
[1,2,1],
[2,1,1]
]
思路:深度优先搜索。和上一题差不多,不同在于数组中包含重复的数字,返回结果还是要不同的。注意先排序,然后就是跳过同一层但是数字相同的重复情况,最后就是不能使用引用和回溯,因为这样会重复计算一些情况。
class Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>>result; sort(nums.begin(),nums.end()); dfs(result,nums,0); return result; } void dfs(vector<vector<int>>&result,vector<int>nums,int start){ if(start>=nums.size()){ result.push_back(nums); return; } for(int i=start;i<nums.size();i++){ if(i!=start&&nums[i]==nums[start]) continue; swap(nums[i],nums[start]); dfs(result,nums,start+1); } }};
阅读全文
0 0
- 【LeetCode】Permutations && Permutations II
- leetcode: Permutations/Permutations II
- leetcode Permutations & Permutations II
- [Leetcode]Permutations && Permutations II
- Leetcode: Permutations and Permutations II
- leetcode-permutations and permutations II
- Leetcode:Permutations与Permutations II
- LeetCode: Permutations II
- LeetCode Permutations II
- LeetCode: Permutations II
- [Leetcode] Permutations II
- [LeetCode] Permutations II
- [Leetcode] Permutations II
- leetcode Permutations II
- [LeetCode]Permutations II
- leetcode - Permutations II
- LeetCode-Permutations II
- [leetcode] Permutations II
- [linux] cp指令
- 浮点数的表示和精度(转)
- Stream Java8的集合类利器——走进Java Lambda(二)
- Linux中的解压与压缩
- es6新增的数组去重方法
- LeetCode-- Permutations II
- 学习笔记TF038:实现估值网络
- 详解闭包
- 输出映射(7)
- qt 控制台HelloWorld
- 拷贝文件数据
- android material design 布局教程
- lintcode-- 删除数字
- python 网络爬虫与信息采取之异常处理