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)的更多相关文章

  1. LeetCode 503. 下一个更大元素 II(Next Greater Element II)

    503. 下一个更大元素 II 503. Next Greater Element II 题目描述 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 ...

  2. LeetCode 496. 下一个更大元素 I(Next Greater Element I) 35

    496. 下一个更大元素 I 496. Next Greater Element I 题目描述 给定两个没有重复元素的数组 nums1 和 nums2,其中 nums1 是 nums2 的子集.找到  ...

  3. Java实现 LeetCode 556 下一个更大元素 III(数组的翻转)

    556. 下一个更大元素 III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 1 ...

  4. Leetcode 556.下一个更大元素III

    下一个更大元素III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 12 输出: ...

  5. [Swift]LeetCode496. 下一个更大元素 I | Next Greater Element I

    You are given two arrays (without duplicates) nums1 and nums2 where nums1’s elements are subset of n ...

  6. [Swift]LeetCode503. 下一个更大元素 II | Next Greater Element II

    Given a circular array (the next element of the last element is the first element of the array), pri ...

  7. 556. 下一个更大元素 III

    556. 下一个更大元素 III 给定一个32位正整数 n,你需要找到最小的32位整数,其与 n 中存在的位数完全相同,并且其值大于n.如果不存在这样的32位整数,则返回-1. 示例 1: 输入: 1 ...

  8. LeetCode:下一个更大元素I【31】

    LeetCode:下一个更大元素I[31] 题目描述 给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的 ...

  9. Leetcode 496. 下一个更大元素 I

    1.题目描述 给定两个没有重复元素的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 nums2 中的下一个比其大的值. nums1 中数字  ...

随机推荐

  1. OLED液晶屏幕(0)自动获取12ic地址液晶屏幕

    . 烧录 串口可以看到输出的地址 #include <Wire.h> void setup(){ Wire.begin(); Serial.begin(9600); Serial.prin ...

  2. Redis存储List

    list中数据可以重复,查询快,增删慢. 存储结构: 1.向List存取数据: 查询list中的全部元素: 第一个进入a,第二个进入b,并将a向后移一位. 上图为从右边插入元素的情况. 2.从两头取出 ...

  3. [USACO06FEB] Stall Reservations 贪心

    [USACO06FEB] Stall Reservations 贪心 \(n\)头牛,每头牛占用时间区间\([l_i,r_i]\),一个牛棚每个时间点只能被一头牛占用,问最少新建多少个牛棚,并且每头牛 ...

  4. IOI2019题解

    由于太懒了,好久没更新了.发个题解好了. shoes 首先不难证明鞋子配对一定是从前往后将同一种的左和右配对. 配好对之后首先我们可以假设左在右的左边,然后讨论可知将左边靠前的排在前面更优. rect ...

  5. shell脚本编程基础之自定义函数库

    脚本编程知识点 ${#VAR_NAME}:引用变量中字符的长度 A="25 90 100 120": echo ${A#* }:针对A变量,#表示从左往右,*空格表示以空格为分隔符 ...

  6. MATLAB 可以画的各种类型的图总结

    MATLAB® 提供了各种可用来绘制数据图的函数.下表对常见的图形函数进行了分类和说明. 线图 数据分布图 离散数据图 极坐标图 等高线图 向量场 plot area stairs polarplot ...

  7. ASP.NET MVC5+EF6+EasyUI 后台管理系统-代码生成器用法

    新的代码生成器比老的更加容易使用,要生成什么形式就选择什么形式,新的代码生成器采用的是WCF界面开发,同样采用开源的模式,根据自己使用习惯容易扩展 1.单列表模式 2.树形列表模式 3.左右列表模式 ...

  8. Centos 安装 zookeeper

    下载 下载地址:http://archive.apache.org/dist/zookeeper/ [root@localhost bin]# wget http://archive.apache.o ...

  9. HTTP APIs 设计/规范指南

    根据REST APIs的成熟度模型 ,此规范关注的是Level 2的APIs.  1 设计指南 HTTP APIs主要由四部分组成:HTTP,URL,资源,资源的表述(JSON).资源的表述格式通常都 ...

  10. Cannot capture jmeter traffic in fiddler

    Cannot capture jmeter traffic in fiddler First, change Fiddler's port back to 8888 as it was origina ...