LeetCode 556. 下一个更大元素 III(Next Greater Element III)

Posted 走在修行的大街上

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 556. 下一个更大元素 III(Next Greater Element III)相关的知识,希望对你有一定的参考价值。

556. 下一个更大元素 III
556. Next Greater Element III

题目描述
给定一个 32 位正整数 n,你需要找到最小的 32 位整数,其与 n 中存在的位数完全相同,并且其值大于 n。如果不存在这样的 32 位整数,则返回-1。

LeetCode556. Next Greater Element III中等

示例 1:

输入: 12 输出: 21

示例 2:

输入: 21 输出: -1

示例 3:

输入: 12443322 输出: 13222344

Java 实现

import java.util.Arrays;

class Solution {
    public int nextGreaterElement(int n) {
        char[] nums = Integer.toString(n).toCharArray();
        int i, j, len = nums.length;
        for (i = len - 1; i > 0; --i) {
            if (nums[i] > nums[i - 1]) {
                break;
            }
        }
        if (i == 0) {
            return -1;
        }
        System.out.println(i);
        for (j = len - 1; j >= i; --j) {
            if (nums[j] > nums[i - 1]) {
                char temp = nums[j];
                nums[j] = nums[i - 1];
                nums[i - 1] = temp;
                break;
            }
        }
        Arrays.sort(nums, i, len);
        long val = Long.parseLong(new String(nums));
        return val > Integer.MAX_VALUE ? -1 : (int) val;
    }
}

相似题目

参考资料

以上是关于LeetCode 556. 下一个更大元素 III(Next Greater Element III)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 556. 下一个更大元素 III

556. 下一个更大元素 III

每日一题556. 下一个更大元素 III

LeetCode 0556.下一个更大元素 III - 4步讲完

[LeetCode] 556. Next Greater Element III

字符串556. 下一个更大元素 III