代码随想录第三十二天(一刷&&C语言)|单调递增的数字

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。

一、单调递增的数字

思路:参考carl文档

当strNum[i - 1] > strNum[i](非单调递增),先让strNum[i - 1]--,再strNum[i]=9。再确定是从后向前遍历。

ledcode题目:https://leetcode.cn/problems/monotone-increasing-digits/****

AC代码:

cpp 复制代码
void itoa(int num, char* str, int* strSize) {
    *strSize = 0;
    while (num > 0) {
        str[(*strSize)++] = num % 10 + '0';
        num /= 10;
    }
    for (int i = 0; i < (*strSize) / 2; i++) {
        int tmp = str[i];
        str[i] = str[(*strSize) - 1 - i];
        str[(*strSize) - 1 - i] = tmp;
    }
}

int monotoneIncreasingDigits(int n) {
    int strNSize;
    char strN[11];
    itoa(n, strN, &strNSize);
    int i = 1;
    while (i < strNSize && strN[i - 1] <= strN[i]) {
        i += 1;
    }
    if (i < strNSize) {
        while (i > 0 && strN[i - 1] > strN[i]) {
            strN[i - 1] -= 1;
            i -= 1;
        }
        for (i += 1; i < strNSize; ++i) {
            strN[i] = '9';
        }
    }
    return atoi(strN);
}
相关推荐
Dlrb121114 小时前
C语言-指针三
c语言·算法·指针·const·命令行参数
kkeeper~14 小时前
0基础C语言积跬步之深入理解指针(5下)
c语言·开发语言
一直不明飞行14 小时前
Java的equals(),hashCode()应该在什么时候重写
java·开发语言·jvm
盲敲代码的阿豪14 小时前
Python 入门基础教程(爬虫前置版)
开发语言·爬虫·python
basketball61615 小时前
C++ 构造函数完全指南:从入门到进阶
java·开发语言·c++
互联科技报15 小时前
2026超融合选型:Top5品牌与市场格局解读
开发语言·perl
weixin1997010801615 小时前
[特殊字符] 智能数据采集:数字化转型的“数据石油勘探队”(附Python实战源码)
开发语言·python
想唱rap15 小时前
IO多路转接之poll
服务器·开发语言·数据库·c++
@杰克成16 小时前
Java学习30
java·开发语言·学习
三品吉他手会点灯16 小时前
C语言学习笔记 - 40.数据类型 - scanf函数的编程规范与非法输入处理
c语言·开发语言·笔记·学习