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

【代码随想录day 31】 力扣 738.单调递增的数字

视频讲解:https://www.bilibili.com/video/BV1Kv4y1x7tP/?vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html#%E6%80%9D%E8%B7%AF
力扣题目:https://leetcode.cn/problems/monotone-increasing-digits/

这道题还挺难想的,主要思路如下

  1. 如果从后往前遍历。前一位小于后一位自然是好的,直接输出,但是如果前一位大于后一位,我们就需要让前一位–,后一位就可以置为9了这样才是最大的。
  2. 一旦有一位变为9,后续都可以变为9,因此我们需要记录从哪里开始后续都变成9,也就是flag位
  3. 从后往前遍历完之后,再从flag位遍历到最后,将每一位都变为9即可。
class Solution {
public:int monotoneIncreasingDigits(int n) {//先将输入的n转为string类型string strNum = to_string(n);//设置flag用来标记从哪一位到最后都变成9int flag = strNum.size();//从后往前遍历,如果是逐步变小就不变,如果前一位大于后一位就把前一位数值--,同时标记后一位开始到最后可以变为9for(int i = strNum.size() - 1; i > 0; --i){if(strNum[i - 1] > strNum[i]){flag = i;strNum[i - 1]--;}}//将flag开始到最后的所有位全变为9for(int i = flag; i < strNum.size(); ++i){strNum[i] = '9';}return stoi(strNum);}
};
http://www.dtcms.com/a/431762.html

相关文章:

  • 上海网站设计 企业有赞微商城入口
  • 【Leetcode高效算法】用双指针策略打破有效三角形的个数
  • 浏览器为什么打不开网站wordpress搭建多人博客
  • 牛客算法刷题noob57 凯撒加密
  • 计算机类毕业设计开题报告注意事项
  • Qt QML创建多线程(示例存读数据库)
  • 2026届计算机毕业设计选题推荐
  • 邹城市网站建设长春网站建设方案外包
  • 合肥建公司网站万户信息 做网站怎么样
  • 第十篇:告别new和delete:RAII机制与智能指针导论
  • 做搜狗pc网站优化快速深圳企业模板建站
  • 深度学习第十章 循环神经网络
  • 设计一个外贸网站需要多少钱wordpress 博客地址更改
  • ASP网站建设实训报告总结大德通众包做网站怎么样
  • 查询网站死链接温州百度快速排名优化
  • 网站建设全包哪家便宜怎么在网站上做按钮
  • 永州网站建设哪家好中信建设有限责任公司深圳中信金融中心项目工期专业招标
  • 八年级信息网站怎么做网站设计的价格
  • OSPF Init 状态 概念及题目
  • 事件相关电位(Event-Related Potential,ERP)
  • 运营一个网站的成本wordpress 网站小模块
  • 怀化市建设局网站地址wordpress建什么站
  • 网站域名解析怎么做wordpress筛选最新文章
  • 【知识科普】JSON数据格式详细介绍
  • wordpress站酷首页wordpress引用jquery
  • 深度学习中的池化(Pooling)技术:原理、实现与应用
  • 手机响应式网站建设公司做电商必须知道的网站
  • Linux任务上下文切换context_switch函数的实现
  • 移动网站开发教学大纲安装wordpress 000
  • 《小米 17:创新与争议并存的科技新品》