当前位置:   article > 正文

代码随想录算法训练营第三十二天|leetcode738题

代码随想录算法训练营第三十二天|leetcode738题

一、leetcode第738题

本题要求返回小于等于给定数字且从最高位到最低位呈单调递增的数值,需要从最低位向最高位遍历,如果最低位比其前一位小则若要使改变后数值最大需要将前一位作减一操作并记录下当前位,在遍历结束后将记录的当前位之后的所有位数值都置为9,此时返回的数值即为所求。

具体代码如下:

  1. class Solution {
  2. public:
  3. int monotoneIncreasingDigits(int n) {
  4. string str=to_string(n);
  5. int flag=str.length();
  6. for(int i=flag-1;i>0;i--)
  7. {
  8. if(str[i]<str[i-1])
  9. {
  10. str[i-1]--;
  11. flag=i;
  12. }
  13. }
  14. for(int i=flag;i<str.length();i++)
  15. {
  16. str[i]='9';
  17. }
  18. return stoi(str);
  19. }
  20. };

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/836340
推荐阅读