贪心:这道题和之前的一道题非常像,
当我们整个数都是单调递增的时候,我们直接返回原数即可,当我们和
这里还有个知识点,char类型的字符++,和--是会按字符+-;
比如char a='9' ++a='10'
而a+1就变为askll码的运算。
class Solution {
public:
int monotoneIncreasingDigits(int n) {
int k=0;
auto a=to_string(n);
while(k+1<a.size()&&a[k+1]>=a[k])k++;
if(k==a.size()-1)return n;
while(k&&a[k-1]==a[k])k--;
a[k]--;
for(int i=k+1;i<a.size();i++)a[i]='9';
return stoi(a);
}
};