标签:小结 lis next htm .com code 时间复杂度 i++ img
n!
个全排列解法一:每一个排列用Next Permutation - LeetCode中的函数生成,一共有n!
个。时间复杂度O(n)。
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int n = nums.size(),i = n-2,j = n-1;
while(i >= 0 && nums[i] >= nums[i+1]) i--;
if(i >= 0)
{
while(nums[j] <= nums[i]) j--;
swap(nums[i],nums[j]);
}
reverse(nums.begin()+i+1,nums.end());
}
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ret;
int n = nums.size(),temp = 1,i;
for(i = 1;i <= n;i++)
{
temp *= i;
}
while(temp >= 1)
{
ret.push_back(nums);
nextPermutation(nums);
temp--;
}
return ret;
}
};
标签:小结 lis next htm .com code 时间复杂度 i++ img
原文地址:https://www.cnblogs.com/multhree/p/10383748.html