代码随想录算法训练营第三十二天|leetcode738题

一、leetcode第738题

本题要求返回小于等于给定数字且从最高位到最低位呈单调递增的数值,需要从最低位向最高位遍历,如果最低位比其前一位小则若要使改变后数值最大需要将前一位作减一操作并记录下当前位,在遍历结束后将记录的当前位之后的所有位数值都置为9,此时返回的数值即为所求。

具体代码如下:

cpp 复制代码
class Solution {
public:
    int monotoneIncreasingDigits(int n) {
    string str=to_string(n);
    int flag=str.length();
    for(int i=flag-1;i>0;i--)
    {
        if(str[i]<str[i-1])
        {
            str[i-1]--;
            flag=i;
        }
    }
    for(int i=flag;i<str.length();i++)
    {
        str[i]='9';
    }
    return stoi(str);
    }
};
相关推荐
Oneshot1 分钟前
DLX(Dancing Links)算法详解:求解数独最快的算法
算法
青少儿编程课堂32 分钟前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
kongdong43 分钟前
Hikyuu | RSI均值回归交易策略实现
算法·均值算法·回归·量化交易·交易策略·hikyuu
小王C语言1 小时前
优选算法:分治-归并排序
算法
非优秀程序员11 小时前
第05章 播放器大战,暴风、快播与那一夜|《互联网产品恩仇录》
算法
武子康18 小时前
驾驶轨迹换个坐标,就能给移动机器人用吗?
人工智能·算法·机器学习
lisw051 天前
Dayhoff的PAM替换矩阵理论评介!
线性代数·算法·矩阵
一起学安全技术1 天前
拆大模型 03|注意力的一句话版本:不用论文讲清 Attention
深度学习·算法·语言模型·transformer
Delightrs1 天前
Rust LeetCode238 算法题解
开发语言·算法·rust