LeetCode 47 Permutations II 解题报告

By | 19/03/2018

【题目】:

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]
]

意思就是现在给的正整数数组里面有重复的整数了现在继续要求给出数组的全排列

 

【Code】:

class Solution {
public:
 vector<vector<int> > permuteUnique(vector<int>& nums) {
 vector<vector<int> > result;
 sort(nums.begin(), nums.end());
 do {
 result.push_back(nums);
 } while (next_permutation(nums.begin(), nums.end()));
 return result;
 }
};

 

【遇到的问题以及解决方法】:

首先这个题不能用之前的那道题目的解决办法因为如果用了的话会出现重复的问题,但是也不是是在不能用可以再遍历一遍将每一个比较一波,很显然这个办法很蠢,所以现在需要STL中的办法的,先对给出的数组进行排序然后用next_permutation对数组从开始元素到结束元素的全排列,关于next_permurtation请看我的下一篇博文。

如果这篇文章对你有帮助,欢迎打赏:

 

 

发表评论