738. 单调递增的数字
1.代码
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string strNum = to_string(n);
int size = strNum.size();
int flag = size;
for (int i = size - 1; i > 0; i--) {
if (strNum[i - 1] > strNum[i]) {
flag = i;
strNum[i - 1]--;
}
}
for (int i = flag; i < size; i++) {
strNum[i] = '9';
}
return stoi(strNum);
}
};
2.思考
我们只要修改第一个不符合规则的减1,为了能够让结果比原来更小,后面全部变成9就行了,这就是最小,可以用一个变量标记最小下标