Open guodongxiaren opened 4 years ago
C++的STL有现成的算法(next_permutation)可以实现全排列。但是名字太长了,很难记住。
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
sort(nums.begin(), nums.end());
vector<vector<int>> res;
res.push_back(nums);
while (next_permutation(nums.begin(), nums.end())) {
res.push_back(nums);
}
return res;
}
};
变换范围 [first, last) 为来自所有按相对于 operator< 或 comp 的字典序的下个排列。若这种排列存在则返回 true ,否则变换范围为首个排列(如同用 std::sort(first, last) )并返回 false 。
给定一个 没有重复 数字的序列,返回其所有可能的全排列。
示例: