排列题

2019-03-26  本文已影响0人  shrinkle

52.下一个排列

title:给定一个整数数组来表示排列,找出其之后的一个排列

题解:从最后一个位置开始,找到一个上升点,上升点之前的无需改动。然后,翻转上升点之后的降序。在降序里,找到第一个比上升点大的,交换位置。

reverse函数:

while (i1 < i2) {

            *i1 ^= *i2; 

            *i2 ^= *i1; 

            *i1 ^= *i2; 

            i1++; 

            i2--; 

190.下一个排列2

给定一个若干整数的排列,给出按正数大小进行字典序从小到大排序后的下一个排列。

如果没有下一个排列,则输出字典序最小的序列。

上一篇 下一篇

猜你喜欢

热点阅读