代码随想录Leetcode 738. 单调递增的数字

题目:


代码(首刷自解 2024年2月18日):

        爽,无bug一遍过。这题思路是将数字从低位到高位一位一位放入数组中,如果出现高位大于地位的情况则将低位全部重置为9,然后高位-1,最后反向遍历相加即可

class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        vector<int> digits(1,9);
        while (n != 0) {
            int number = n % 10;
            n = n / 10;
            if (number <= digits.back()) {
                digits.push_back(number);
                continue;
            } else {
                digits = vector<int>(digits.size(),9);
                if (number == 0) {
                    number = 9;
                    n--;
                } else {
                    number--;
                }
                digits.push_back(number);
            }
        }

        int res = 0;
        for (int i = digits.size() - 1; i >= 1; --i) {
            res = res * 10 + digits[i];
        }
        return res;
    }
};

最近更新

  1. TCP协议是安全的吗?

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

    2024-02-20 02:46:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-20 02:46:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-20 02:46:01       20 阅读

热门阅读

  1. 【Webpack】基本使用和概述

    2024-02-20 02:46:01       27 阅读
  2. Linux调试器---gdb

    2024-02-20 02:46:01       28 阅读
  3. MySQL的 4 种连接查询

    2024-02-20 02:46:01       24 阅读
  4. ChatGPT魔法2:两大准则

    2024-02-20 02:46:01       29 阅读
  5. MySQL全量备份

    2024-02-20 02:46:01       24 阅读
  6. linux查看磁盘占用命令

    2024-02-20 02:46:01       21 阅读
  7. 【LeetCode每日一题】单调栈 901股票价格跨度

    2024-02-20 02:46:01       33 阅读