738.单调递增的数字
依次减一遍历,判断是否是递增数,时间复杂度较高
贪心:
从后向前遍历,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增)让strNum[i - 1]--,然后strNum[i]给为9
intmonotoneIncreasingDigits(intN){string strNum=to_string(N);// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行intflag=strNum.size();for(inti=strNum.size()-1;i>0;i--){if(strNum[i-1]>strNum[i]){flag=i;strNum[i-1]--;}}for(inti=flag;i<strNum.size();i++){strNum[i]='9';}returnstoi(strNum);}
968.监控二叉树(略过)
网友评论