[Swift]LeetCode556. 下一个更大元素 III | Next Greater Element III
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了