給定一個非負整數 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));}
}