算法刷题记录 Day32
Date: 2024.03.28
lc 738. 单调递增的数字
class Solution {
public:
int monotoneIncreasingDigits(int n) {
// 从高位往低位找,找到第一个不是单调递增的位数,该位-1,之后所有位变9
string a = to_string(n);
for(int i=0; i<a.size()-1; i++){
if(a[i]>a[i+1]){
while(i>=1 && a[i] == a[i-1]){ //若该位-1后比之前的位数小了也不行,要找到第一个与该位
//相等处
i--;
}
a[i] = a[i] - 1;
for(int j=i+1; j<a.size(); j++){
a[j] = '9';
}
}
}
int res = atoi(a.c_str());
return res;
}
};