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

一、leetcode第738题

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

具体代码如下:

class Solution {
public:
    int monotoneIncreasingDigits(int n) {
    string str=to_string(n);
    int flag=str.length();
    for(int i=flag-1;i>0;i--)
    {
        if(str[i]<str[i-1])
        {
            str[i-1]--;
            flag=i;
        }
    }
    for(int i=flag;i<str.length();i++)
    {
        str[i]='9';
    }
    return stoi(str);
    }
};

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 16:18:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 16:18:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 16:18:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 16:18:01       18 阅读

热门阅读

  1. npm 常用命令详解

    2024-03-30 16:18:01       15 阅读
  2. Qt_Note18_QML_c++与qml信号与槽

    2024-03-30 16:18:01       18 阅读
  3. taskkill /f /fi “windowtitle eq 窗口标题“ /t 踩坑

    2024-03-30 16:18:01       16 阅读
  4. 云备份客户端业务实现逻辑

    2024-03-30 16:18:01       19 阅读
  5. JVM之堆

    JVM之堆

    2024-03-30 16:18:01      13 阅读
  6. 面向对象设计之单一职责原则

    2024-03-30 16:18:01       20 阅读