题意:
给出一串(46题)不重复or(47题)有重复的数字,要求输出所有排列。
思路:
有没有重复不影响思路 = =。 代码展示为46题提交结果,47题一样过……
可以偷懒用next_permutation方法也可以自己实现,实现方法为从后往前找第一个出现的nums[i] < nums[i+1],从i后面找出比nums[i]稍大一点的数字nums[x],交换nums[i]和nums[x],反序i后面的部分。
代码:
/**
* 自己实现 13ms
*/
class Solution {
public:
vector<vector<int>> permute(vector<int> &nums) {
vector<vector<int>> ans;
sort(nums.begin(), nums.end());
ans.push_back(nums);