LeetCode 738

class Solution {
public int monotoneIncreasingDigits(int n) {
StringBuilder sb = new StringBuilder(String.valueOf(n));
int index = sb.length();
if(checkUp(sb.toString(), index)){
return Integer.parseInt(sb.toString());
}
while (index > 1){
sb.replace(index-1, index, "9");
char c = sb.charAt(index - 2);
if(c == '0'){
index--;
continue;
}
sb.replace(index-2, index-1, String.valueOf(Character.digit(c, 10)-1));
if(checkUp(sb.toString(), index-1)){
return Integer.parseInt(sb.toString());
}
index--;
}
return Integer.parseInt(sb.toString());
}
public boolean checkUp(String s, int index){
for(int i = 1; i < index; i++){
if(s.charAt(i) < s.charAt(i-1)){
return false;
}
}
return true;
}
}

该博客详细介绍了如何解决LeetCode中的738题——单调递增的数字。作者通过编写一个名为`monotoneIncreasingDigits`的Java方法来实现检查整数的单调递增性。方法中使用StringBuilder处理数字字符串,通过遍历和替换操作找到不单调的部分,并将其转换为最大的单调递增序列。同时,博客还包含了一个辅助方法`checkUp`用于检查子串是否单调递增。
824

被折叠的 条评论
为什么被折叠?



