static int x=[](){
std::ios::sync_with_stdio(false);
cin.tie(NULL);
return 0;
}();
class Solution {
public:
void nextPermutation(vector<int>& nums) {
if (nums.size() <= 1)
return;
int left = 0;
bool flag = false;
for (int i = nums.size() - 2; i >= 0; i--)
if (nums[i] < nums[i + 1]){
if (i == nums.size() - 2){
int temp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = temp;
}else{
for (int j = i + 1; j < nums.size(); j++){
if (nums[j] <= nums[i]){
int temp = nums[i];
nums[i] = nums[j - 1];
nums[j - 1] = temp;
break;
}
if (j == nums.size() - 1){
int temp = nums[i];
nums[i] = nums[j];
nums[j] = temp;
}
}
sort(nums.begin() + i + 1, nums.end());
}
flag = true;
break;
}
if (!flag)
sort(nums.begin(), nums.end());
}
};
LetCode 31. 下一个排列
最新推荐文章于 2024-04-18 10:52:32 发布