代码随想录第三十二天(一刷&&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);
}
相关推荐
带娃的IT创业者5 小时前
Python 异步编程完全指南:从入门到精通
服务器·开发语言·python·最佳实践·asyncio·异步编程
爱编码的小八嘎8 小时前
C语言完美演绎3-15
c语言
一只鹿鹿鹿8 小时前
信息安全等级保护安全建设防护解决方案(总体资料)
运维·开发语言·数据库·面试·职场和发展
喵叔哟8 小时前
9. 【Blazor全栈开发实战指南】--Blazor调用JavaScript
开发语言·javascript·udp
wuqingshun3141598 小时前
如何停止一个正在退出的线程
java·开发语言·jvm
我命由我123458 小时前
Element Plus - Form 的 resetField 方法观察记录
开发语言·前端·javascript·vue.js·html·html5·js
朱包林8 小时前
Python基础
linux·开发语言·ide·python·visualstudio·github·visual studio
海阔天空任鸟飞~9 小时前
蓝汛-BT897-添加按键提示音
c语言·单片机·蓝汛
Barkamin9 小时前
队列的实现(Java)
java·开发语言
hixiong1239 小时前
C# OpenvinoSharp使用RAD进行缺陷检测
开发语言·人工智能·c#·openvino