代码随想录 Day37 738.单调递增的数字 968.监控二叉树

738.单调递增的数字 

class Solution {
public:
    int monotoneIncreasingDigits(int N) {
        string strNum = to_string(N);
        // flag用来标记赋值9从哪里开始
        // 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行
        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);
    }
};

思路:

1. 本题的核心思想是在于当元素不够减的时候就会变成9,这个需要通过多个例子就会发现。并且会发现需要进行从后向前的遍历。

2.之所以设置flag标志位是因为1000这种情况就需要再比较1和0的时候才能知道需要将0变成9.

问题:

1. 本题可以通过将int类型数字变为string类型的数字方便对于每一位进行操作,用到函数to_string()和stoi()函数,同时记得对于每一位的元素需要对于元素的值进行改变的时候,需要加' '因为这个时候每一位上都是一个char类型。

968.监控二叉树

二刷在做

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 17:52:03       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 17:52:03       20 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 17:52:03       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 17:52:03       20 阅读

热门阅读

  1. 编程生活day7--明明的随机数、6翻了、吃火锅

    2024-04-04 17:52:03       15 阅读
  2. C#多页面共用一个实例

    2024-04-04 17:52:03       15 阅读
  3. 【LeetCode】第2题:两数相加(AHK v2)

    2024-04-04 17:52:03       13 阅读
  4. EFCore通用仓储类

    2024-04-04 17:52:03       13 阅读
  5. AspectJ 的 5 大通知类型

    2024-04-04 17:52:03       11 阅读
  6. 详细介绍如何利用 A star(A*)算法解决8数码问题

    2024-04-04 17:52:03       15 阅读
  7. python实现UDP服务器

    2024-04-04 17:52:03       18 阅读
  8. Redis的基础命令集详解

    2024-04-04 17:52:03       20 阅读
  9. Redis Stack十部曲之二:理解Redis Stack中的数据类型

    2024-04-04 17:52:03       17 阅读
  10. 【实时监控主机与某个IP的网络连接情况】

    2024-04-04 17:52:03       21 阅读