C++ 数字排列 next_permutation使用

输入一组数字(可能包含重复数字),输出其所有的排列方式。

数据范围
输入数组长度 [0,6]

样例
输入:[1,2,3]

输出:
[
[1,2,3],
[1,3,2],
[2,1,3],
[2,3,1],
[3,1,2],
[3,2,1]
]
next_permutation 是 C++ 中 头文件中提供的一个函数,用于生成下一个(字典序的)排列。使用方法是,首先确保你的容器中包含一组可排序的元素,然后调用 next_permutation 函数,它会将容器中的元素重新排列成下一个字典序的排列,如果存在的话,并返回 true;如果已经是最后一个排列(按字典序),则将容器恢复成第一个排列并返回 false。也就是重复调用的话,可以生成容器中的所有可能的排列。

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

你可能感兴趣的:(力扣,排列与组合,c++,算法)