您的位置:首页 > 其它

permutations l

2015-11-28 16:19 197 查看
class Solution {
public:
vector<vector<int>> permute(vector<int>& nums) {
vector<vector<int>> ret;
sort(nums.begin(),nums.end());
int size=nums.size();
if(size==0) return ret;
if(size==1){
ret.push_back(nums);
return ret;
}
int sum=1;
for(int i=1;i<=size;i++){
sum*=i;
}
ret.push_back(nums);
int i;
for(i=1;i<sum;i++){
int j;
int m;
j=size-1;
while(j>0&&nums[j-1]>=nums[j]) j--;
m=j;
while(m<size&&nums[j-1]<nums[m])m++;
int temp=nums[m-1];
nums[m-1]=nums[j-1];
cout<<"HHHH"<<endl;
nums[j-1]=temp;
reverse(nums.begin()+j,nums.end());
cout<<"llll"<<endl;
ret.push_back(nums);
}
return ret;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: