题目:
给一个数组,按照排序,给出下一个更大的组合顺序,如果当年是最大的数字,那么给出最小的数字。
思路:
要使得这个数字比当前更大,那就得从后面往前找到第一个往下减少得位,然后再从这个之后找到第一个大于这个target得数,交换,然后再逆序(因为寻找的时候就是以从后往前递增 ,交换后还是递增,为了保证greater,所以要逆序(从target之后)
代码:
class Solution {
public:
void nextPermutation(vector<int>& nums) {
//next_permutation(begin(nums), end(nums));
if(nums.size()