738.单调递增的数字
解析:代码随想录
题目:- LeetCode
class Solution {
public int monotoneIncreasingDigits(int n) {
String s = String.valueOf(n);
char[] c = s.toCharArray();
for (int i = c.length - 1; i > 0; i--) {
int value = c[i] - '0';
int pre = c[i - 1] - '0';
if (value < pre) {
int tmp = i;
while (tmp < c.length) c[tmp++] = Character.forDigit(9, 10);
c[i - 1] = Character.forDigit(pre - 1, 10);
}
}
String ss = new String(c);
return Integer.parseInt(ss);
}
}
思路和解析差不多,我是在for loop的时候一个个set 9,解析做法for loop打了一个坐标,最后以坐标为起点set 9.
看了解析明白,char可以不用换成int再比较,可以直接比较。
然后学会了如何将int 转换成char Character.forDigit(pre - 1, 10); 10是固定数值。