单调递增的数字
暴力方法
bool mode(int n){
int pre = 9;
while(n){
if (n % 10 <= pre){
pre = n % 10;
n = n / 10;
}
else{
return false;
}
}
return true;
}
int monotoneIncreasingDigits(int n) {
while(n){
if (mode(n))
return n;
else
n--;
}
return n;
}
贪心的方法:
int monotoneIncreasingDigits(int n) {
string str = to_string(n);
int flag = str.size();
for(int i = str.size() - 1; i > 0; i--){
if(str[i] < str[i - 1]){
str[i - 1] = str[i - 1] - 1;
flag = i;
}
}
for(int i = flag; i < str.size(); i++){
str[i] = '9';
}
return stoi(str);
}