LeetCode 45. Permutations II

来源:互联网 发布:mac系统zh cn 编辑:程序博客网 时间:2024/06/05 17:15

做LeetCode 44. Permutations时,考虑的就是找出所有unique permutations,而且44中也没有考察duplicate的sample, 所以同一份代码都能AC


思路是num排升序,将其加入返回值ret中,再迭代去找它的LeetCode 30. Next Permutation


代码:

class Solution {public:    vector<vector<int> > permute(vector<int> &num)     {vector<vector<int> > ret;sort(num.begin(), num.end());do {ret.push_back( num );} while( has_next_permutation(num) );return ret;}private:bool has_next_permutation(vector<int>& num){for (int i = num.size()-2; i >= 0; -- i){for (int j = num.size()-1; j > i; -- j){if (num[j] > num[i]){swap(num[i], num[j]);sort(num.begin()+i+1, num.end());return true;}}}return false;}};


0 0