题目链接
英文链接:https://leetcode.com/problems/next-greater-element-iii/
中文链接:https://leetcode-cn.com/problems/next-greater-element-iii/
题目详述
给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n。如果不存在这样的32位整数,则返回-1。
示例 1:
1 | 输入: 12 |
示例 2:
1 | 输入: 21 |
题目详解
- 前两题 LeetCode496-下一个更大元素I、LeetCode503-下一个更大元素II 都是运用单调栈进行解答,本题与单调栈无关,实际上是求下一个排列。
- 求下一个排列具有四个步骤。
- 注意下一个排列不存在的情况和最终结果溢出的情况,这两种情况都应该返回 -1。
- 为了避免对结果进行溢出判断,可以将结果转换为
long
型变量进行计算,最后判断是否超过int
型变量的最大值。
1 | public class LeetCode_00556 { |