[LeetCode] 47. Permutations II
来源:互联网 发布:易语言qq空间秒赞源码 编辑:程序博客网 时间:2024/06/08 02:52
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]]
// 26msclass Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> res; permuteUnique(res, nums, 0); return res; }private: void permuteUnique(vector<vector<int>>& res, vector<int>& nums, int nth) { if (nth == nums.size()) { res.push_back(nums); return; } unordered_map<int, bool> IsUsed; for (int i = nth; i < nums.size(); i++) { if (IsUsed[nums[i]] == false) { IsUsed[nums[i]] = true; swap(nums[nth], nums[i]); permuteUnique(res, nums, nth + 1); swap(nums[nth], nums[i]); } } }};
// 22msclass Solution {public: vector<vector<int>> permuteUnique(vector<int>& nums) { vector<vector<int>> res; vector<int> comb; vector<bool> IsUsed(nums.size(), false); sort(nums.begin(), nums.end()); permuteUnique(res, comb, nums, 0, IsUsed); return res; }private: void permuteUnique(vector<vector<int>>& res, vector<int>& comb, vector<int>& nums, int nth, vector<bool>& IsUsed) { if (nth == nums.size()) { res.push_back(comb); return; } for (int i = 0, nxt; i < nums.size(); i = nxt) { if (IsUsed[i]) { nxt = i + 1; continue; } for (nxt = i; nxt < nums.size() && nums[nxt] == nums[i]; nxt++) ; comb.push_back(nums[i]); IsUsed[i] = true; permuteUnique(res, comb, nums, nth + 1, IsUsed); IsUsed[i] = false; comb.pop_back(); } }};
阅读全文
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
- 偶串和制造回文
- sqlite中日期函数及日期查询语句
- 进程控制
- 升级docker至最新版本
- 羊皮卷之十
- [LeetCode] 47. Permutations II
- FusionCompute (虚拟化引擎)-简单概述
- 图像滤波----高斯滤波/中值滤波/均值滤波
- wireshark学习
- RPC入门(一):RPC java代码简单实现
- anaconda安装opencv
- 《剑指offer》笔记-第4章(3)
- 结构体排序
- JavaScript基础第二章