738.单调递增的数字
- 从后往前遍历
- 转化为字符串好操作
- flag的作用,为什么不能初始化为0
class Solution {
public:
int monotoneIncreasingDigits(int n) {
//easy to operate
string StrNum = to_string(n);
//prevent error
int flag = StrNum.size();
//from back to front
for (int i = StrNum.size()-1; i > 0; --i) {
if (StrNum[i] < StrNum[i-1]) {
flag = i;
StrNum[i-1]--;
}
}
for (int i = flag; i < StrNum.size(); ++i) {
StrNum[i] = '9';
}
return stoi(StrNum);
}
};