具体思路:从后往前遍历数组,只要是前边一个数比后边一个数大,前边这个数作减一操作,后边那个数变成9
class Solution {
public int monotoneIncreasingDigits(int n) {
// 将数字先变成字符串
String s = String.valueOf(n);
// 字符串变为字符数组
char[] arr = s.toCharArray();
// 记录需要变成9的下标
int start = arr.length;
// 从后往前遍历
for(int i=arr.length-1; i>0; i--){
if(arr[i-1] > arr[i]){
arr[i-1]--;
start = i;
}
}
// 遍历数组,将需要变为9的变为9
for(int i=start; i<arr.length; i++){
arr[i] = '9';
}
return Integer.valueOf(String.valueOf(arr));
}
}
执行结果: