https://leetcode.cn/problems/monotone-increasing-digits/description/
class Solution {
public int monotoneIncreasingDigits(int n) {
// 返回单调递增的最大数字
// 思路比较巧妙的贪心题,需要仔细考虑两个相邻位之间的比较
// 一旦发现有前一位比后一位大,则从前一位开始,后面的所有位都置为9,前一位--
char[] num = String.valueOf(n).toCharArray();
int flagNine=Integer.MAX_VALUE;
for(int i=num.length-1;i>=1;i--)
{
// 前一位比后一位大,则需要--,更新置为9的flag
if( num[i-1] -'0' > num[i]-'0')
{
num[i-1]--;
flagNine=i;
}
}
for(int i=flagNine;i<num.length;i++)num[i]='9';
return Integer.valueOf(String.valueOf(num));
}
}
标签:int,一位,--,num,flagNine,738,leetcode,单调 From: https://www.cnblogs.com/lxl-233/p/18389580