738.单调递增的数字
思路: 本题要求得到一个小于等于N的最大整数,如果给定的N就是单调递增的,那么结果就是它本身。如果N不是单调递增的,出现strNum[i - 1] > strNum[i]的情况(非单调递增),就可以让strNum[i - 1]–,然后strNum[i]给为9,这样这个整数就是小于N的最大的单调递增整数。
class Solution {
public:
int monotoneIncreasingDigits(int n) {
string strnum = to_string(n);
int flag = strnum.size();
for(int i = strnum.size()-1;i>0;i--){
if(strnum[i-1]>strnum[i]){
flag=i;
strnum[i-1]--;
}
}
for(int i=flag;i<strnum.size();i++){
strnum[i]='9';
}
return stoi(strnum);
}
};
968.监控二叉树
一刷跳过!看不太懂!