[贪心算法]Leetcode738. 单调递增的数字

题目

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

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

思路

  • 贪心算法:局部最优,遇到strNum[i - 1] > strNum[i],说明这里需要改变,strNum[i - 1]–,strNum[i]赋值为9; 然后标记下位置,表示从哪一位开始统一改成9

  • 从后向前开始遍历,比如332,332->329->299

代码

class Solution {public:int monotoneIncreasingDigits(int n) {string str = to_string(n);int flag = str.size();// flag用来标记从哪里开始全部都是9// 从后向前开始遍历for(int i = str.size() - 1; i > 0;i--){if(str[i - 1] > str[i]){str[i - 1]--;flag = i;}}for(int i =flag; i < str.size(); i++){str[i] = '9';// flag之后的数据全部赋值成9}return stoi(str);}
};

[贪心算法]Leetcode738. 单调递增的数字相关推荐

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

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

  2. Leetcode738. 单调递增的数字[C++题解]:贪心,数学解法

    文章目录 题目 思路 ac代码 参考 题目 https://leetcode-cn.com/problems/monotone-increasing-digits/ 思路 题目要求返回≤n的最大的.单 ...

  3. leetcode738. 单调递增的数字(贪心)

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

  4. leetcode738. 单调递增的数字

    一:芭比Q了 又掉一个粉 啊呜呜呜呜呜 如果作为一个领导者来说,首先就是要以身作则,自己都做不到 ,那就没什么威信去要求手下人按照要求去做 二:题目 三:上码 class Solution {publ ...

  5. Leetcode--738. 单调递增的数字

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

  6. leetcode738 单调递增的数字

    class Solution { public:int monotoneIncreasingDigits(int n) {//首先明白我们得到的结果要是单调递增的//我们需要先将这个数转字符串stri ...

  7. leetcode738. 单调递增的数字(中等)

    思路:贪心 实现细节:从左到右遍历,遇到第一个将要下降的数字[i]将其减少1,右侧的都改成9即可,如果遍历到末尾了则直接return 这样可能出现的问题:减1之后,可能[i-1]>[i](即[i ...

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

    Day36 周日休息~ 一.参考资料 单调递增的数字 https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9 ...

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

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

最新文章

  1. 众创汇定制如何革新工业4.0?
  2. pytorch下载时出现错误:EOFError: Compressed file ended before the end-of-stream marker was reached
  3. 海量Web日志分析 用Hadoop提取KPI统计指标
  4. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别
  5. 获取extjs 选择后的表头_批量写入审计底稿的表头信息设定页面
  6. 利用数据的商业智能分析工具
  7. 路普达-区块链系统开发项目之DAPP
  8. cba篮球暂停次数和时间_CBA一场比赛每支球队可以叫多少次暂停
  9. 安卓recovery如何传递启动参数
  10. SQL 语句性能查看
  11. lscpu 显示cpu的相关信息
  12. 全套Java基础视频教程
  13. 主流量化交易的几种策略模型
  14. 7天下载破千万,让你“变老”的FaceApp如何爆发式增长?
  15. docker-安装、使用centos7镜像
  16. 微信小游戏是个人尝试做游戏最好的选择
  17. 菜鸟阿鑫的常用类(上)总结
  18. 第三次作业--结对编程
  19. 阿维塔6000+交付量再创新高,持续聚焦“悦己”诉求
  20. css3 3d头像,Three.js 3D头像

热门文章

  1. hibernate先删除数据,紧接着执行插入时的异常解决之道——中间不能调用flush()、clear()等方法...
  2. 2019-11-12 kk日记,使用python完成ora2pg的工作小结
  3. 【FFmpeg】视频scale缩放之后尺寸与设置值不一致
  4. 今天nba预测分析_焰神体育【NBA】赛事推荐预测分析:1月15日《开拓者》vs《步行者》...
  5. 有哪些简单好用的电脑录音软件
  6. 《程序是怎样跑起来的》第八章读后感
  7. PHP 获取真实 IP 的正确姿势
  8. 大厂架构演进实战之手写 CAS 单点登录
  9. 字幕编辑软件 SrtEdit 2012
  10. 解决There is not enough memory to perform the requested operation……