Leetcode 556. Next Greater Element III
来源:互联网 发布:追风软件 编辑:程序博客网 时间:2024/05/17 09:31
Given a positive 32-bit integer n, you need to find the smallest 32-bit integer which has exactly the same digits existing in the integer nand is greater in value than n. If no such positive 32-bit integer exists, you need to return -1.
Example 1:
Input: 12Output: 21
Example 2:
Input: 21Output: -1
index: 012345
given: 124651
ans : 125146
procedure:
Starting from the rightmost digit, going to left. Find the first digit which is smaller than the previous digit.
In this example, 4 is smaller than 6. Remember 4 and its index 2.
Going from rightmost again. This time, find the first digit which is bigger than 4. It is 5 here.
Swap 4 and 5. The number becomes 125641.
Reverse all the digits which are right to 4's original index (That is 2), 641 should be reversed to 146 here.
And the answer is reached which is 125146.
public int nextGreaterElement(int n) { char[] a = String.valueOf(n).toCharArray(); int i = a.length - 2; while (i >= 0 && a[i + 1] <= a[i]) { i--; } if(i < 0) return -1; int j = a.length - 1; while (j >= 0 && a[j] <= a[i]) { j--; } swap(a, i, j); reverse(a, i + 1); try{ return Integer.parseInt(new String(a)); } catch(Exception e){ return -1; } } private void reverse(char[] a, int start) { int i = start, j = a.length - 1; while (i < j) { swap(a, i, j); i++; j--; } } private void swap(char[] a, int i, int j) { char temp = a[i]; a[i] = a[j]; a[j] = temp; }
- Leetcode-556. Next Greater Element III
- LeetCode 556. Next Greater Element III
- [leetcode] 556. Next Greater Element III
- [leetcode]556. Next Greater Element III
- Leetcode 556. Next Greater Element III
- [LeetCode] 556. Next Greater Element III
- [LeetCode] 556. Next Greater Element III
- 556. Next Greater Element III
- 556. Next Greater Element III
- 556. Next Greater Element III
- 556. Next Greater Element III
- 556. Next Greater Element III
- leetcode 556. Next Greater Element III 字典序
- [Leetcode] 556. Next Greater Element III 解题报告
- 496. Next Greater Element I && 503. Next Greater Element II && 556. Next Greater Element III
- LeetCode556. Next Greater Element III
- [LeetCode]Next Greater Element
- LeetCode--Next Greater Element
- JVM参数:-XX:StringTableSize
- VERIFY DATABASE 正在异常终止。 (Microsoft SQL Server,错误: 3169)
- POJ1753 Flip Game
- An Exploration of ARM TrustZone Technology
- HDU 1512 Monkey King [可并堆]
- Leetcode 556. Next Greater Element III
- 动归-----编辑距离
- 朴素贝叶斯算法原理小结
- 前、中、后缀表达式和前、中、后序遍历
- java模式—装饰者模式
- Python 内置函数 dir()
- 判断单向链表是否回文
- 神经性风格化过程的特征控制
- 344. Reverse String