#include #include using namespace std; class Solution { public: void nextPermutation(vector &nums) { int i = nums.size() - 2; while (i >= 0 && nums[i + 1] <= nums[i]) i--; if (i >= 0) { int j = nums.size() - 1; while (nums[j] <= nums[i]) j--; swap(nums, i, j); } reverse(nums, i + 1); } private: void reverse(vector &nums, int start) { int i = start, j = nums.size() - 1; while (i < j) { swap(nums, i, j); i++; j--; } } void swap(vector &nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; } }; int main() {}