vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> re;
sort(nums.begin(),nums.end());
do
{
re.push_back(nums);
}
while(next_permutation(nums.begin(), nums.end()));
return re;
}
这个函数首先对输入的 nums
向量进行排序,然后使用 do-while
循环和 std::next_permutation
函数来生成所有可能的排列。每次调用 std::next_permutation
时,它都会修改 nums
向量以包含下一个排列(按字典序)。当没有更多的排列时,std::next_permutation
返回 false
,循环结束。最后,函数返回包含所有排列的二维向量 re
。
请注意,为了使这段代码能够正常工作,您需要确保已经包含了 <vector>
和 <algorithm>
头文件,并且使用了 std::
前缀来限定标准库中的名称,或者您可以在代码开头使用 using namespace std;
来避免重复输入 std::
。