单调递增的数字

题目链接:力扣题目链接
难度:中等
当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。

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

示例 1:

输入: n = 10
输出: 9

思路

局部最优:遇到strNum[i - 1] > strNum[i]的情况,让strNum[i - 1]–,然后strNum[i]给为9,可以保证这两位变成最大单调递增整数。
全局最优:得到小于等于N的最大单调递增的整数。
但这里局部最优推出全局最优,还需要其他条件,即遍历顺序,和标记从哪一位开始统一改成9。
从后向前遍历,就可以重复利用上次比较得出的结果了,从后向前遍历332的数值变化为:332 -> 329 -> 299

贪心代码

class Solution{public int monotoneIncreasingDigits(int n) {String[] strs = (n + "").split("");int start = strs.length;for(int i=strs.length-1;i>0;i--){if(Integer.parseInt(strs[i]) < Integer.parseInt(strs[i-1])){strs[i-1] = (Integer.parseInt(strs[i-1]) - 1) + "";start  = i;}}for(int i = start;i<strs.length;i++){strs[i] = "9";   }return Integer.parseInt(String.join("",strs));}
}

算法学习:738.单调递增的数字相关推荐

  1. _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 、714.买卖股票的最佳时机含手续费、968.监控二叉树

    _32LeetCode代码随想录算法训练营第三十二天-贪心算法 | 738.单调递增的数字 .714.买卖股票的最佳时机含手续费.968.监控二叉树 题目列表 738.单调递增的数字 714.买卖股票 ...

  2. D37 738.单调递增的数字 968.监控二叉树 + 贪心算法总结

    738.单调递增的数字 1.题目 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增. (当且仅当每个相邻位数上的数字 x 和 y 满足 x &l ...

  3. 代码随想录算法训练营第37天|738. 单调递增的数字,714. 买卖股票的最佳时机含手续费,968. 监控二叉树

    Day 37 738. 单调递增的数字 class Solution { public:int monotoneIncreasingDigits(int n) {string strN = to_st ...

  4. 738. 单调递增的数字

    链接:738. 单调递增的数字 题解:https://leetcode-cn.com/problems/monotone-increasing-digits/solution/dan-diao-di- ...

  5. 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

    文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...

  6. Java实现 LeetCode 738 单调递增的数字(暴力)

    738. 单调递增的数字 给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增. (当且仅当每个相邻位数上的数字 x 和 y 满足 x <= ...

  7. 代码随想录训练营第37天|738.单调递增的数字、968.监控摄像头

    738.单调递增的数字.968.监控摄像头 738.单调递增的数字 对于单调递增的数字,我们可以逆序遍历一下数组,如果每个位置的数字都满足小于下一个位置,则说明这个位置满足条件. 如果一个数字不满足条 ...

  8. 738.单调递增的数字

    ''' Description: 738.单调递增的数字 Autor: 365JHWZGo Date: 2021-11-10 09:34:56 LastEditors: 365JHWZGo LastE ...

  9. Leecode 738. 单调递增的数字 贪心

    原题链接:Leecode 738. 单调递增的数字 代码写的是真烂,,,可读性就是"仅自己可读"的程度... class Solution {public:int monotone ...

  10. [Leetcode]738. 单调递增的数字

    当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的. 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 . 示例 1: 输入: ...

最新文章

  1. 质子交换膜燃料电池稳压器的设计及仿真
  2. python最大公约数和最小公倍数
  3. python项目如何打开_python如何打开_linux如何打开python_python程序打开 - 云+社区 - 腾讯云...
  4. python对象group函数_如何对groupby对象应用多个函数
  5. 基于c语言画图软件,大佬们,小菜鸟想问一问用vc编译器做简易画图软件
  6. jboss-AS目录结构了解(资料摘取)
  7. JAVA(二)异常/包及访问权限/多线程/泛型
  8. caffe绘制训练过程的loss和accuracy曲线
  9. 451.根据字符出现频率排序
  10. 数据产品经理新人的工作笔记学习
  11. 记录一次阿里云服务器被攻击事件
  12. Linux笔记:文本编辑器nano简单说明
  13. vue2[初级] vuex状态集中式管理
  14. java基础语法试题_请问有没有java基础语法的练习题?发个链接吧!?
  15. 百度电子地图自定义marker图标
  16. bios 闪存颗粒_使用USB闪存盘从失败的BIOS刷新中恢复HP Compaq BIOS危机
  17. ICMP flood(ICMP洪水攻击)
  18. 数据清洗python实现箱线图_GitHub - nonefirst/data_analysis: 基于Python的南京二手房数据采集及可视化分析...
  19. 怎么让照片人物嘴巴动起来?这个好用方法你必须知道
  20. java界面设计股票_利用JAVA实现股票交易系统设计参考.doc

热门文章

  1. PCB板上高频信号回流经验总结
  2. 攻防世界之新手进阶Caeser Cipher
  3. 行列式基础(《线性代数》学习笔记)
  4. PS切图和标注的一些效率工具
  5. Leetcode 855. Exam Room 考场就座:提供两种解法
  6. 2022年Vue最常见的面试题以及填空题(面试必问)
  7. 微信支付app支付坑
  8. 插画师培训怎么选,5大插画师培训班排名
  9. 达梦数据库和鼎甲备份一体机使用问题
  10. Elasticsearch能把普通的sql翻译成DSL的插件