算法训练day37|贪心算法part06

738.单调递增的数字

遇到了strNum[i - 1] > strNum[i],让strNum[i - 1]--,然后strNum[i]及以后给为9

根据这种情况从后往前遍历

class Solution {
    public int monotoneIncreasingDigits(int n) {
        String s = String.valueOf(n);
        char[] chars = s.toCharArray();
        int start = s.length();
        for (int i = s.length() - 2; i >= 0; i--) {
            if (chars[i] > chars[i + 1]) {
                chars[i]--;
                start = i+1;
            }
        }
        for (int i = start; i < s.length(); i++) {
            chars[i] = '9';
        }
        return Integer.parseInt(String.valueOf(chars));
    }
}

贪心算法总结:

没有固定套路,更多是记忆

你可能感兴趣的:(算法,贪心算法,java)