31. Next Permutation
https://leetcode.com/problems/next-permutation/description/
Thoughts
Code
/*
* @lc app=leetcode id=31 lang=cpp
*
* [31] Next Permutation
*/
// @lc code=start
class Solution {
public:
void nextPermutation(vector<int>& nums) {
const int N = nums.size();
int i = N - 2;
for (; i >= 0 && nums[i] >= nums[i + 1]; --i) continue;
if (i >= 0) {
for (int j = N - 1; j > i; --j) {
if (nums[j] <= nums[i]) continue;
swap(nums[i], nums[j]);
break;
}
}
reverse(nums.begin() + i + 1, nums.end());
}
};
// @lc code=end
Analysis
Last updated