代码随想录算法训练营第三十七天| LeetCode738.单调递增的数字

news/2024/9/23 11:20:01/

LeetCode 738 单调递增的数字

题目链接:738. 单调递增的数字 - 力扣(LeetCode)

【解题思路】

  • 需要采用从后往前的遍历

  • 如果发现该数字的前一位比后一位大,那么前一位就做-1处理,后一位变为9

  • 注意:千万不要将start初始化成0!!因为如果if逻辑没有走到,那么下面的for循环会从0开始将所有位的数值赋值成0!!!

【解题步骤】

  • 1.将传进来的int值转化为String类型,目的是为了方便遍历

  • 2.将转为string的值再转为char数组,在char数组上原地修改,效率更高

  • 3.定义一个start变量,记录我们需要从哪里开始修改数值为9

  • 4.从值的倒数第二位开始从后往前遍历(因为需要比较当前位和下一位的大小,从倒数第一位遍历会越界):

    • 如果当前位的数大于下一位的数:

      • 当前位的数-1

      • start=i+1

  • 5.从start当前的位置开始遍历整个数组:

    • 将start位置以及之后的位置的值全改为9

  • 6.return Integer.parseInt(String.valueOf(chars));

【代码部分】

class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray();int start = s.length();for(int i = s.length() - 2; i >= 0 ; i--){if(chars[i] > chars[i+1]){chars[i]--;start = i+1;}}for(int i = start ; i< s.length() ; i++){chars[i] = '9';}return Integer.parseInt(String.valueOf(chars));}
}


http://www.ppmy.cn/news/1442177.html

相关文章

Axure RP 9中文激活版:专业原型设计工具mac/win

Axure RP 9是一款由美国Axure Software Solution公司开发的专业原型设计工具。它凭借强大的交互功能和丰富的设计素材&#xff0c;为产品经理、UI设计师、交互设计师等用户提供了高效、便捷的原型设计体验。 Axure RP 9支持快速创建线框图、流程图、原型和规格说明文档&#xf…

自动化立体库安全使用管理制度

导语 大家好&#xff0c;我是智能仓储物流技术研习社的社长&#xff0c;老K。专注分享智能仓储物流技术、智能制造等内容。 新书《智能物流系统构成与技术实践》 完整版文件和更多学习资料&#xff0c;请球友到知识星球 【智能仓储物流技术研习社】自行下载 关于自动化立体库安…

【Redis 开发】(长篇学习)掌握Redis的用法,各种客户端下的操作

Redis 前言RedisRedis的安装Redis启动Redis客户端 Redis常见命令Redis的java客户端jedis学习简单的jedis 入门流程Jedis连接池 SpringDataRedisSpringDataRedis快速入门 前言 我们在作者之前的文章: 快速掌握Redis安装与基本语法的基础上进行系统的学习&#xff0c;学习自黑马…

3.车载网络诊断测试用例标准与示例(车载网络诊断测试平台)

文章目录 1.概述2.测试用例2.1 用例名字2.2 用例ID2.3 测试需求来源2.4 测试环境2.5 测试目的2.6 前提条件2.7 手动/自动2.8 测试步骤2.9 评价标准2.10 备注2.11 测试结果2.12 测试数据3.测试用例示例4.其他1.概述

Redis集合[持续更新]

Redis&#xff08;全称&#xff1a;Remote Dictionary Server 远程字典服务&#xff09;是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库&#xff0c;并提供多种语言的 API。 数据结构 1. string 字符串 字符串类型是 Redis 最…

实时交互新篇章:WebSocket在Flutter中的应用与实践

WebSocket 协议是一个应用层协议,是一种在单个TCP连接上进行全双工通信的协议。 与传统的HTTP请求不同,WebSocket在建立连接后,双方可以随时发送消息,无需频繁地建立和断开连接。这种特性使得WebSocket成为实时应用的理想选择,如在线游戏、聊天应用和实时数据更新等。 本…

Linux的磁盘分区,格式化,挂载

1.需要提前添加几个磁盘&#xff0c;以做实验 2.把nvme0n2磁盘用来分区实验 3.分了一个主分区&#xff0c;和一个扩展分区&#xff08;扩展分区是不能使用的&#xff0c;所以又在扩展分区里分了一个逻辑分区&#xff09;分区的大小自己定义 4.格式化分出来的区&#xff0c;这…

github two-factor authentication是个啥?

最近在逛github时&#xff0c;总是时不时会弹出一下界面&#xff0c;很烦 看到红框里的文字&#xff0c;这明显是强制要求做这个认证&#xff0c;如果不认证4天后账号将不可访问&#xff0c;所以今天花点时间看看怎么做这个认证&#xff0c;点“Enable 2FA now”进入这个界面&a…