#include<vector> #include<algorithm> using std::vector;
classSolution { public: voidnextPermutation(vector<int> &nums) { int i, n = nums.size(); int pos = -1;
for (i = n - 2; i >= 0; i--) { if (nums[i] < nums[i + 1]) { pos = i; break; } } if (pos != -1) { for (i = n - 1; i >= 0; i--) { if (nums[i] > nums[pos]) { // 找到第一个大于nums[pos]的数并交换 std::swap(nums[i], nums[pos]); break; } } }