52.下一个排列
title:给定一个整数数组来表示排列,找出其之后的一个排列
题解:从最后一个位置开始,找到一个上升点,上升点之前的无需改动。然后,翻转上升点之后的降序。在降序里,找到第一个比上升点大的,交换位置。
reverse函数:
while (i1 < i2) {
*i1 ^= *i2;
*i2 ^= *i1;
*i1 ^= *i2;
i1++;
i2--;
190.下一个排列2
给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。
如果没有下一个排列,则输出字典序最小的序列。
网友评论