代码随想录第三十二天(一刷&&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);
}
相关推荐
努力学习的小廉1 分钟前
【C++】 —— 笔试刷题day_29
开发语言·c++·算法
电商数据girl9 分钟前
酒店旅游类数据采集API接口之携程数据获取地方美食品列表 获取地方美餐馆列表 景点评论
java·大数据·开发语言·python·json·旅游
天天打码10 分钟前
python版本管理工具-pyenv轻松切换多个Python版本
开发语言·python
CircleMouse10 分钟前
基于 RedisTemplate 的分页缓存设计
java·开发语言·后端·spring·缓存
ktkiko1116 分钟前
顶层架构 - 消息集群推送方案
java·开发语言·架构
楠奕16 分钟前
python中使用neo4j
开发语言·python·neo4j
南斯拉夫的铁托28 分钟前
labelimg安装及使用指南(yolo)
开发语言·python·yolo
QQ_43766431433 分钟前
Linux下可执行程序的生成和运行详解(编译链接汇编图解)
linux·运维·c语言·汇编·caffe
六bring个六1 小时前
文件系统交互实现
开发语言·c++·qt·交互
jingyu飞鸟1 小时前
Centos7系统(最小化安装)安装zabbix7版本详细文章、nginx源代码配置、php源代码、mysql-yum安装
开发语言·php