738.单调递增的数字
自己想了个方法,但是不对。照着Carl的答案写出来的。
这里首先确认的是应该从右往左遍历,因为这样的话遇到前面的数比当前大的话,就可以借位了。我考虑到这点了,但是没想透。然后找到应该是从哪一位开始把数写成9。只记录最靠左应该改为9的位置就行。
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string n_toString = to_string(n);
int flag = n_toString.length();
for(int i=n_toString.length()-1; i>0; i--){
if(n_toString[i-1] > n_toString[i]){
flag = i;
n_toString[i-1]--;
}
}
for(int i=flag; i<n_toString.length(); i++){
n_toString[i] = '9';
}
return stoi(n_toString);
}
};