代码随想录算法训练营第三十七天 | 738.单调递增的数字

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是固定数值。

你可能感兴趣的:(leetcode,算法,职场和发展)