leetcode738. 单调递增的数字(贪心)
生活随笔
收集整理的這篇文章主要介紹了
leetcode738. 单调递增的数字(贪心)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
給定一個非負整數 N,找出小于或等于 N 的最大的整數,同時這個整數需要滿足其各個位數上的數字是單調遞增。
(當且僅當每個相鄰位數上的數字 x 和 y 滿足 x <= y 時,我們稱這個整數是單調遞增的。)
示例 1:
輸入: N = 10
輸出: 9
代碼
class Solution {public int monotoneIncreasingDigits(int N) {char[] temp=String.valueOf(N).toCharArray();int i=1;while (i<temp.length&&temp[i-1]<=temp[i]) i++;//找出非遞增的while (i>0&&i<temp.length&&temp[i-1]>temp[i]) temp[--i]--; //要將后面的數字變成全9,就要向前借位,借位之后如果變非遞增了,就繼續變9并且向前借1,直到保持的是非遞增for(int j=i+1;j<temp.length;j++) temp[j]='9';//后面的全部變9return Integer.parseInt(String.valueOf(temp));} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的leetcode738. 单调递增的数字(贪心)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 孕妇梦到蛇被自己砍死是什么意思
- 下一篇: leetcode1090. 受标签影响的