当前位置: 首页 > news >正文

738. 单调递增的数字

738. 单调递增的数字

当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 。

示例 1:

输入: n = 10
输出: 9

示例 2:

输入: n = 1234
输出: 1234

示例 3:

输入: n = 332
输出: 299

提示:

  • 0 <= n <= 109
  • //暴力法,分解数字--------->超时
    class Solution {static bool check(int x){int maxnum=10;while(x){int t=x%10;if(maxnum>=t){maxnum=t;}else{return false;}x/=10;}return true;}
    public:int monotoneIncreasingDigits(int n) {for(int i=n;i>0;i--){if(check(i)){return i;}}return 0;}
    };
    class Solution {
    public:int monotoneIncreasingDigits(int n) {//第一步将整数转成字符串,类似于高精度算法string str=to_string(n);//定义一个标志符flagbool flag=false;//如果高位大于次高位,直接高位减一,次高位变9,后面都变9//例如45357-->44999//但是例如332-->329,顾后不顾前,随意需要从后往前在遍历一遍for(int i=1;i<str.size();i++){//if(str[i-1]>str[i]&&flag==false){str[i-1]--;flag=true;}if(flag){str[i]='9';}}//从后往前在遍历一遍//还是如果高位大于次高位,直接高位减一,次高位变9,后面都变9for(int i=str.size()-1;i>0;i--){if(str[i-1]>str[i]){str[i]='9';//不能一直减一,剪成负数了if(str[i-1]!='0'){str[i-1]--;}}}//stoi将字符串转整数return stoi(str);}
    };

http://www.lryc.cn/news/111307.html

相关文章:

  • ssh安全远程管理
  • 外部排序算法总结
  • Redis安装以及配置隧道连接(centOs)
  • mysql二进制方式升级8.0.34
  • Kotlin单例代码实例
  • (7.28-8.3)【大数据新闻速递】《数字孪生工业软件白皮书》、《中国绿色算力发展研究报告》发布;华为ChatGPT要来了
  • TikTok海外抖音云控抢金币宝箱
  • H3C交换机如何通过MAC和IP查寻对应ARP信息
  • python进阶
  • spring boot 配置文件和属性注入
  • springboot+vue私人健身和教练预约管理系统 nt5mp
  • Kotlin基础(十一):反射和注解
  • DALLE2论文解读及实现(一)
  • RabbitMQ-API
  • 外边距实现居中的写法
  • 剑指 Offer 20. 表示数值的字符串 (正则 逐步分解)
  • 【深度学习】Transformer,Self-Attention,Multi-Head Attention
  • CADintosh X for mac CAD绘图软件2D CAD 程序 兼容 M1
  • 【读书笔记】《厌女》- [日]上野千鹤子 - 2010年出版
  • Android 从其他xml文件中获取View组件数据
  • java 数组的使用
  • Jmeter(一) - 从入门到精通 - 环境搭建(详解教程)
  • 外贸企业选择CRM的三大特点
  • 软件测试与游戏测试的区别
  • Programming Abstractions in C阅读笔记:p72-p75
  • bash测试test详解
  • 你来问我来答,ChatGPT对话软件测试!主题互动
  • 无人机巢的作用及应用领域解析
  • 面试热题(环形链表II)
  • 策略模式:优雅地实现可扩展的设计