力扣--单调递增的数字738

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

示例 1:

输入: n = 10
输出: 9
class Solution {
    public int monotoneIncreasingDigits(int n) {
        int max = -1;
        int len = -1;
        char[] arr = String.valueOf(n).toCharArray();
        for (int i = 0; i < arr.length - 1; i++) {
            if (arr[i] > max) {
                max = arr[i];
                len = i;
            }
            if (arr[i] > arr[i + 1]) {
                arr[len] -= 1;
                for (int j = len + 1; j < arr.length; j++) {
                    arr[j] = '9';
                }
            }
        }
        return Integer.parseInt(new String(arr));
    }
}

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