P97. 数组的下一个排列

leetcode 31 lintcode 52 数组 讨论

温馨提示:您没有权限查看当前视频。 立即购买观看视频

描述

这个题目说的是,给你一个整数数组,每一个元素是一个 0 到 9 的整数,数组的排列形成了一个有效的数字。你要找到数组的下一个排列,使它形成的数字是大于当前排列的第一个数字。如果当前排列表示的已经是最大数字,则返回这个数组的最小排列。

比如说,给你的数组是:

2, 1, 8, 4, 2, 1

这个排列表示整数 218421,你要返回的下一个排列是:

2, 2, 1, 1, 4, 8

表示 221148,这是数组中的元素所能组成的数字中,大于当前排列的第一个数字。

再比如说,给你的数组为:

4, 2, 1

你没有办法给出一个比它更大的排列,于是返回这些数字所能构成的最小排列:

1, 2, 4

关于 AlgoCasts

AlgoCasts 旨在用心做好每一个算法讲解视频。每个视频包含两个部分:题目的剖析讲解以及编码,力求在讲解清楚到位的基础上,尽可能地保持视频精简短小,让大家可以在碎片时间里进行学习,并收获这些算法题背后的思想与乐趣。