贪心算法解决单调递增数字问题

embedded/2025/1/2 20:34:09/

代码随想录链接:代码随想录

思路:

定义一个变量flag,表示需要将之后的数字全部变成9的位置

从后遍历数字中的每一位,如果遍历到第i位数字时它的前一位数字比它大(严格大于),令它前一位数字减1,同时令flag=i

遍历结束后,令该数字的第flag位及其之后的全部数字都变成9

最后返回最终的数字即可

代码:

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


http://www.ppmy.cn/embedded/150159.html

相关文章

Mono里运行C#脚本4—mono_mutex_t 锁的实现

一、结论: 递归锁:同一个线程在不解锁的情况下,可以多次获取锁定同一个递归锁,而且不会产生死锁; 非递归锁:在不解锁的情况下,当同一个线程多次获取同一个递归锁时,会产生死锁。 二、典型应用: windows下的互斥量和临界区(关键段)是递归锁; linux下的互斥量pt…

Ubuntu 20.04 安装 LNMP

1. 更新系统 sudo apt update sudo apt upgrade2. 安装 Nginx sudo apt install nginx3. 安装 MariaDB (作为 MySQL 的替代) sudo apt install mariadb-server mariadb-client初始化 MariaDB 数据库&#xff08;可选&#xff09; sudo mysql_secure_installation4. 安装 PH…

Linux系统rpm安装MySQL详细操作步骤

安装方式介绍 在Linux系统中&#xff0c;安装软件的方式主要有四种&#xff0c;这四种安装方式的特点如下&#xff1a; 安装方式 特点 二进制发布包安装 软件已经针对具体平台编译打包发布&#xff0c;只要解压&#xff0c;修改配置即可 rpm安装 软件已经按照redhat的包…

极狐GitLab 17.7正式发布,可从 GitLab 丝滑迁移至极狐GitLab【一】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…

OpenVPN 被 Windows 升级破坏

问题描述 2024-12-26 Windows 提示有更新需要安装。安装完成后&#xff0c;作为 OpenVPN 桥接服务器的电脑无法被 OpenVPN 客户端接入。 原因 查 OpenVPN 的 log&#xff0c;发现是启动连接失败。原因是找不到配置文件里面描述的那个带 TAP 字样的网卡。 这个带 TAP 字样的…

MYSQL访问控制,第2阶段:请求验证

服务器接受连接后&#xff0c;进入权限控制的第二阶段。对于您通过连接发出的每个请求&#xff0c;服务器确定您要执行的操作&#xff0c;然后检查您的权限是否足够。这是授权表中的权限列发挥作用的地方。这些权限来自系统表user、global_grants、db、tables_priv、columns_pr…

<数据集>风力发电机损伤识别数据集<目标检测>

数据集下载链接 &#xff1c;数据集&#xff1e;风力发电机损伤识别数据集&#xff1c;目标检测&#xff1e;https://download.csdn.net/download/qq_53332949/90187097数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;2527张 标注数量(xml文件个数)&#xff1a;252…

Spring MVC实战指南:构建高效Web应用的架构与技巧(一)

三层架构和MVC 三层架构 开发服务器端程序&#xff0c;一般都基于两种形式&#xff0c;一种C/S架构程序&#xff0c;一种B/S架构程序。 Java语言基本上都是开发B/S架构的程序&#xff0c;B/S架构又分成了三层架构 表现层&#xff1a;springmvc框架&#xff0c;单例的&#xff…