LeetCode-738. 单调递增的数字
### 解题思路
此处撰写解题思路
1.数字转为string,方便逐位比较,在取每一位的时候很好用。
2.然后从头找前面的字符大于后面的字符,找到后减一
3.比较当前字符是否小于前面的字符,若是,依次减一,知道找到不小于前面字符为止,注意不超过字符串边界。在当前字符后面全部置位为‘9’,转为数字即可。
### 代码
```cpp
class Solution {
public:
    int monotoneIncreasingDigits(int N) {
        //使用贪心法
        string str=to_string(N);
        int len=size(str);
        int n=0;
        for(;n<len-1;n++){
            if(str[n]>str[n+1]){
                str[n]-=1;//当前位置减一,后面全部为9;
                break;
            }}
        while(str[n-1]>str[n]&&n>0){
            str[n-1]-=1;
            n--;
        }
        for(n=n+1;n<len;n++){
            str[n]='9';
        }
        return stoi(str);
    }
};
```
    如有错误,欢迎指正。
 
                    
                
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号