738. 单调递增的数字

  1. 从后向前遍历,遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]—,然后strNum[i]给为9,
  2. 用flag记录最左边要变为9的位置
  3. flag以后的位置全为9
    1. class Solution {
    2. public:
    3. int monotoneIncreasingDigits(int n) {
    4. if(n<10)return n;
    5. string strnum = to_string(n);
    6. int flag = strnum.size();
    7. for(int i=strnum.size()-1;i>0;i--)
    8. {
    9. if(strnum[i-1]>strnum[i])
    10. {
    11. flag = i;
    12. strnum[i-1]--;
    13. }
    14. }
    15. for(int i =flag;i<strnum.size();i++)
    16. {
    17. strnum[i] = '9';
    18. }
    19. return stoi(strnum);
    20. }
    21. };