★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10415232.html 
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★

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: 12
Output: 21 

Example 2:

Input: 21
Output: -1

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

示例 1:

输入: 12
输出: 21

示例 2:

输入: 21
输出: -1

Runtime: 8 ms
Memory Usage: 18.8 MB
 1 class Solution {
 2     func nextGreaterElement(_ n: Int) -> Int {
 3         var str:String = String(n)
 4         var arr:[Character] = Array(str)
 5         var len:Int = str.count
 6         var i:Int = len - 1
 7         while(i > 0)
 8         {
 9             if arr[i] > arr[i - 1] {break}
10             i -= 1
11
12         }
13         if i == 0 {return -1}
14         for j in (i...(len - 1)).reversed()
15         {
16             if arr[j] > arr[i - 1]
17             {
18                 arr.swapAt(j,i - 1)
19                 break
20             }
21         }
22         var str2 = String(arr[0..<i])
23         str2  += String(arr[i..<arr.count].sorted(by:<))
24         var res:Int = Int(str2)!
25         return res > 2147483647 ? -1 : Int(res)
26     }
27 }

转载于:https://www.cnblogs.com/strengthen/p/10415232.html

[Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III相关推荐

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

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  2. 2021-08-25556. 下一个更大元素 III

    556. 下一个更大元素 III 给你一个正整数 n ,请你找出符合条件的最小整数,其由重新排列 n 中存在的每位数字组成,并且其值大于 n .如果不存在这样的正整数,则返回 -1 . 注意 ,返回的 ...

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

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

  4. LeetCode 496. 下一个更大元素 I

    599. 两个列表的最小索引总和 添加链接描述 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示. 你需要帮助他们用最少的索引和 ...

  5. 496.下一个更大元素I

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

  6. 算法----- 下一个更大元素 I

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

  7. LeetCode 496. 下一个更大元素 I 解题思路及C++实现

    解题思路: 因为这两个int型的vector中不包含重复元素,所以考虑使用c++中的unordered_map,对num2进行遍历,找到每一个元素的下一个更大元素,这样的话,时间复杂度就是O(n). ...

  8. 503. 下一个更大元素 II

    503. 下一个更大元素 II 题目 我的解答 分析 解答 官方解法 题目 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是 ...

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

    496. 下一个更大元素 I 题目 分析 我的解答 官方解答 题目 给定两个 没有重复元素 的数组 nums1 和 nums2 ,其中nums1 是 nums2 的子集.找到 nums1 中每个元素在 ...

最新文章

  1. php批量生成200条8位兑换码
  2. stm32 usart 单线半双工串口 DMA发送 最后一个字节发不出来问题
  3. mysql centos7 默认密码忘记_centos7 mysql忘记密码解决办法
  4. 【Intellij IDEA系列】IDEA的Debug调试技巧
  5. zabbix 2.2 监控mysql_Zabbix-2.2.2监控MySQL的复制-阿里云开发者社区
  6. redis的五种数据结构及其使用场景
  7. C++笔记-char*存储的二进制转成long long十进制(读串口的时候经常用到)
  8. 如何用Pygame写游戏(十四)
  9. c语言递归求塔移动次数,c语言递归调用汉诺塔
  10. 高考生男生学铁路好还是计算机好,解析为什么说男生读铁路学校好呢
  11. Kvm虚拟化性能测试与性能优化实践
  12. php bc 比较,php BC高精确度函数库
  13. 机器视觉的发展现状和前景分析
  14. office2007中把文件转换成pdf格式的问题
  15. 奥运五环的含义及其颜色对应码
  16. Java学习之代码扫描工具的使用方法
  17. 程序员,你真的会写简历吗?
  18. C#合并两个(多个)集合
  19. vue大屏展示 代码 从0 到1
  20. 点击刷新时修改路径 html,window.location更改URL属性、重定向或刷新页面!!

热门文章

  1. Dalsa线扫相机SDK开发-小试牛刀(1)
  2. Java微信二次开发(九)
  3. javaScript获取url中的参数
  4. 常用JQuery插件整理
  5. nio~view buffer
  6. axios关于针对请求时长策略设计的思考
  7. [逆向][Writeup]ISG2015 flagfinder - .NET程序逆向
  8. Android底部导航栏实现(一)之BottomNavigationBar
  9. 微服务扩展新途径:Messaging
  10. 动态代理,动态代理设计模式 ,JDK动态代理,cglib动态代理