思路:
- 参考 http://blog.csdn.net/abcjennifer/article/details/40152323, 复杂度为 (O(nlog(n)))
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int i,k = 0;
for(i = nums.size()-1; i > 0; i--){
if(nums[i] > nums[i-1]) break;
}
k = i;
if(k == 0) {
sort(nums.begin(), nums.end());
}
else{
for(i = nums.size()-1; i >= k; i--){
if(nums[i] > nums[k-1]) break;
}
swap(nums[i],nums[k-1]);
sort(nums.begin()+k, nums.end());
}
//for(k = 0; k < nums.size(); k++)
// cout << nums[k] << " ";
}
};