贪心算法---单调递增的数字

server/2024/10/21 20:40:17/

题目:

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

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

思路:

对于非递增的相邻位两个数字x和y,有x>y,如98。处理方法应该是把x-1,y赋值为9,如比98小的最大单调递增整数为89。代码技巧为使用flag记录从哪里开始赋值为9。关于遍历顺序,应采用从后到前遍历,这样才能重复利用上一次比较的结果。

代码:

    public int monotoneIncreasingDigits(int n) {String s=String.valueOf(n);//将整数n转换成字符串形式char[] chars=s.toCharArray();int flag=s.length();//记录赋值9从哪里开始//从后往前遍历,如果相邻的两个数不是递增,则把前面的数减一,后面的数赋值为9for(int i=s.length()-2;i>=0;i--){if(chars[i]>chars[i+1]){chars[i]--;flag=i+1;}}for(int i=flag;i<s.length();i++){chars[i]='9';}return Integer.parseInt(String.valueOf(chars));//Integer.parseInt()用于将字符串转换为整数}

注释:

String.valueOf(a)可以将不同类型的数据a转换为字符串类型。

Integer.parseInt(string)可以将字符串转换为整数


http://www.ppmy.cn/server/110326.html

相关文章

23种设计模式之模板模式

一.什么是模板模式 ‌‌模板模式是一种行为型设计模式&#xff0c;它定义了一个算法的骨架&#xff0c;而将一些步骤留给子类实现。‌这种模式允许子类在不改变算法结构的基础上&#xff0c;重新定义算法的某些步骤。模板模式属于行为型设计模式&#xff0c;主要用于处理那些需…

docker技术详解,带你全方面玩懂docker

目录 一、docker简介 1.1 什么是docker 1.2 docker与虚拟化的对比 1.3 docker的优势 二、部署docker 2.1 容器的工作方法 2.2 部署docker 2.2.1 配置docker的软件仓库 三、docker的基本操作 3.1 docker的镜像管理 3.1.1 拉取镜像&#xff1a; 3.1.2 搜索镜像&#…

【#第三期实战营闯关作业 ##Lagent 自定义你的 Agent 智能体】

这几天学习了樊奇老师讲授的《Lagent 自定义你的 Agent 智能体》一课&#xff0c;受益颇深&#xff0c;非常感谢书生浦语团队老师们提供的如此丰盛的大餐&#xff0c;真得很香&#xff01;下面是实操的截图&#xff1a; 为 Lagent 创建环境 conda create -n agent_camp3 pytho…

望繁信科技亮相2024数博会:以流程智能引领数字化转型新未来

在全球瞩目的2024中国国际大数据产业博览会&#xff08;以下简称“数博会”&#xff09;上&#xff0c;上海望繁信科技有限公司&#xff08;简称“望繁信科技”&#xff09;作为大数据流程智能领域的领军企业&#xff0c;隆重亮相并展示了其在数字化转型与人工智能领域的最新科…

谷粒商城实战笔记-275~276-商城业务-订单服务-订单确认页完成

文章目录 一&#xff0c;275-商城业务-订单服务-订单确认页完成1&#xff0c;防止订单重复提交 二&#xff0c;276-商城业务-订单服务-原子验令牌Lua 脚本Java 代码 包括内容&#xff1a; 275-商城业务-订单服务-订单确认页完成276-商城业务-订单服务-原子验令牌 一&#xff…

题解AtCoder ABC 358 F Easiest Maze

一道模拟题。 思路 最短的路线是直接竖着走下来&#xff0c;经过 n n n 个格子&#xff0c;所以 k k k 最小是 n n n。如果想要延长路线&#xff0c;可以采用九转大肠的形状&#xff0c;就像这样&#xff1a; 可以发现&#xff0c;每次向左走之后都必须走回来&#xff0c;…

sqlite3的db.parallelize方法:并行执行SQL语句,提升数据库操作效率

在Node.js环境中&#xff0c;sqlite3作为一个广受欢迎的轻量级数据库库&#xff0c;为开发者提供了一个与SQLite数据库进行交互的简洁API。在进行数据库操作时&#xff0c;为了提高效率&#xff0c;sqlite3提供了db.parallelize方法&#xff0c;允许并行执行多个SQL语句&#x…

977.有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组&#xff0c;要求也按 非递减顺序 排序。 &#xff1a; class Solution {public int[] sortedSquares(int[] nums) {// 找到绝对值最小的数下标int minIdx -1;int min Integer.MAX_…