[LeetCode] Permutations II

来源:互联网 发布:淘宝上什么木制品好卖 编辑:程序博客网 时间:2024/06/13 07:44
vector<vector<int> > permuteUnique(vector<int> &num) {vector<vector<int>> permutations;if (num.size() <= 1){permutations.push_back(num);return permutations;}sort(num.begin(), num.end());int lastNum = num.back();num.pop_back();vector<vector<int>> permutationsWithoutLastNum = permuteUnique(num);for (int i = 0; i < permutationsWithoutLastNum.size(); i++){vector<int> permutationWithoutLastNum = permutationsWithoutLastNum[i];int lastSame = permutationWithoutLastNum.size()-1;for (; lastSame >= 0; lastSame--){if (permutationWithoutLastNum[lastSame] == lastNum){break;}}for (int j = lastSame+1; j < permutationWithoutLastNum.size(); j++){vector<int> permutation = permutationWithoutLastNum;//if (permutation[j] != lastNum){permutation.insert(permutation.begin()+j, lastNum);permutations.push_back(permutation);}}vector<int> permutation = permutationWithoutLastNum;permutation.push_back(lastNum);permutations.push_back(permutation);}return permutations;    }

0 0