其他分享
首页 > 其他分享> > leetcode738-单调递增的数字

leetcode738-单调递增的数字

作者:互联网

单调递增的数字

先对数字进行遍历,找出从零开始单调递增的子序列。
如果此时i小于数组长度,意味着数组不是全部递增的,需要对数组进行修改。那么让i从后向前进行遍历,每次将arr[i-1]数组减一,直到arr[i] >= arr[i-1]成立为止。将前面的数字减少之后,由于前面的数字已经小于原数字,那么后面的数字只需要全部填入9即可。

class Solution {
    public int monotoneIncreasingDigits(int n) {
        char arr[] = String.valueOf(n).toCharArray();
        int i = 0;
        while(i == 0 || (i < arr.length && arr[i] >= arr[i-1]))  i++;
        if(i < arr.length){
            while(i > 0 && arr[i] < arr[i-1])   arr[--i]--;
            for(++i; i < arr.length; i++)  arr[i] = '9';
        }
        return Integer.parseInt(new String(arr));
    }
}

标签:arr,数字,int,递增,length,++,leetcode738,单调
来源: https://www.cnblogs.com/xzh-yyds/p/16587856.html