leetcode 47. Permutations II
来源:互联网 发布:java软件是什么 编辑:程序博客网 时间:2024/06/06 12:54
相关问题
leetcode 46. Permutations
Discription
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2] have the following unique permutations:
思路
leetcode 46. Permutations 的变种。
基本方法仍然是基于分治以及基于深搜两种。
主要考虑如何去重。常见的去重方法包括:
- 利用set的性质;
- 排序+特定的选择策略
基于分治
待补充。
时间复杂度:
空间复杂度:
代码
基于深度优先搜索
时间复杂度:
空间复杂度:
代码
class Solution {public: void dfs(vector<int> &nums, vector<int> &tmp, vector<vector<int>> &res, vector<bool> &visited) { if (tmp.size() == nums.size()) { res.push_back(tmp); return; } for (int i = 0; i < nums.size(); i++) { if (visited[i]) continue; if (i > 0 && nums[i] == nums[i - 1] && visited[i - 1] == false) continue; //选择策略 visited[i] = true; tmp.push_back(nums[i]); dfs(nums, tmp, res, visited); visited[i] = false; tmp.pop_back(); } } vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> res; vector<int> tmp; vector<bool> visited(nums.size(), false); sort(nums.begin(), nums.end()); dfs(nums, tmp, res, visited); return res; }};
阅读全文
0 0
- [LeetCode]47.Permutations II
- LeetCode 47.Permutations II
- LeetCode --- 47. Permutations II
- [Leetcode] 47. Permutations II
- [leetcode] 47.Permutations II
- LeetCode 47. Permutations II
- 47. Permutations II LeetCode
- Leetcode 47. Permutations II
- LeetCode 47. Permutations II
- LeetCode - 47. Permutations II
- [LeetCode] 47. Permutations II
- leetcode 47. Permutations II
- [LeetCode]--47. Permutations II
- [LeetCode]--47. Permutations II
- [leetcode] 47. Permutations II
- leetcode 47. Permutations II
- Leetcode-47. Permutations II
- [LeetCode]--47. Permutations II
- c++实现一元稀疏多项式加减
- maven常见问题
- GitLab服务器经常502(阿里云搭建)
- git 常用命令
- Codeforces Round #448 (Div. 2) B,C,
- leetcode 47. Permutations II
- 数据结构-->数组
- UVA-714 Copying Books
- MyBatis源码解析(一)——MyBatis初始化过程解析
- 大学生活随笔
- Docker教程之安装
- 用python 实现自主查询实时天气
- HDU3555[Bomb]--数位DP
- web前端十日谈-笔记