原题
思路
具体思路参考此处
代码
class Solution {
public:
void nextPermutation(vector<int>& nums) {
int n = nums.size();
int i = n - 2, j = n - 1;
while (i >= 0 && nums[i] >= nums[j]) {
i--; j--;
}
if (i >= 0) {
for (int k = n - 1; k >= j; k--) {
if (nums[k] > nums[i]) {
swap(nums[i], nums[k]);
break;
}
}
}
reverse(nums.begin() + j, nums.end());
return;
}
};
运行截图
收获
- 发现数据里的规律,多总结,多实践