示例代码

class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        string str=to_string(n);
        int len=str.length(),flag=-1;
        for(int i=len-1;i>0;i--){
            if(str[i-1]>str[i]){
                //flag用于记录从什么位置开始和其之后的所有数字都为9
                flag=i;
                str[i-1]--;
            }
        }
        if(flag!=-1){
            for(int i=flag;i<len;i++){
                // str[i-1]=9; //错误写法
                str[i]='9';
            }
        }
        return stoi(str);

    }
};
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.

效果展示

LeetCode---738. 单调递增的数字(str[i-1]=9;//错误写法 str[i]=‘9‘;//正确写法)_算法