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

LeetCode 单调递增的数字题解

LeetCode 单调递增的数字题解

题目描述

给定一个非负整数 N,找出小于或等于 N 的最大单调递增的数字。

示例

输入:N = 10
输出:9

解题思路

方法:贪心

思路

  • 从高位到低位遍历数字。
  • 如果发现某一位比下一位大,则将这一位减 1,并将后面的所有位设置为 9。
  • 重新从高位开始检查,直到没有发现任何问题。

复杂度分析

  • 时间复杂度:O(n)。
  • 空间复杂度:O(n)。

代码实现

def monotone_increasing_digits(n): digits = list(str(n)) marker = len(digits) for i in range(len(digits) - 1): if digits[i] > digits[i + 1]: marker = i + 1 while i >= 0 and digits[i] > digits[i + 1]: digits[i] = str(int(digits[i]) - 1) i -= 1 break for i in range(marker, len(digits)): digits[i] = '9' return int(''.join(digits)) # 测试 def test_monotone_increasing_digits(): N = 10 print(monotone_increasing_digits(N)) # 输出:9 if __name__ == "__main__": test_monotone_increasing_digits()

总结

单调递增的数字是贪心算法的典型应用,通过从高位到低位遍历并调整数字来找到最大单调递增的数字。

http://www.jsqmd.com/news/833043/

相关文章:

  • 从零构建大语言模型:PyTorch实现Transformer核心组件与训练全流程
  • Kubernetes原生自动化部署工具Keel:实现容器镜像自动更新的最后一公里
  • 构建现代化爬虫管理平台:从架构设计到工程实践
  • 2026年5月北京二手房装修公司推荐:五家专业评测夜读案例防踩坑 - 品牌推荐
  • ChatGPT开源项目监控平台架构解析:从数据采集到智能展示
  • 如何选北京二手房装修公司?2026年5月推荐五家评测老房水电改造避隐患 - 品牌推荐
  • Go语言实现Hermes引擎:高性能JavaScript字节码虚拟机解析与实践
  • 基于Git的自动化文件同步工具clawsync:原理、配置与实战应用
  • AI智能体驱动的工作流引擎:构建下一代自动化系统的核心技术
  • Python数据聚合抓取工具:从配置化引擎到实战避坑指南
  • 【仅剩217份】《Midjourney后印象派风格白皮书》V2.3——含17位艺术家专属LoRA适配建议、32组跨文化色彩映射表及实时风格强度校准工具(2024.06内部封测版)
  • Vision Agent:基于LLM与视觉工具链的智能体框架实战解析
  • LeetCode 买卖股票最佳时机含手续费题解
  • 2026年5月北京老房改造装修公司推荐:五家排名评测夜读防眼干 - 品牌推荐
  • 设计令牌编排器:自动化打通设计与开发工作流
  • 基于ULN2803与微控制器的可编程霓虹灯牌设计与实现
  • 分布式系统核心模式实践:从Raft共识到键值存储构建
  • 企业级后端四层架构实战:从理论到代码的清晰落地
  • 项目八: 配置与管理FTP服务器(1) C1
  • 开源AI图像生成工具Dream-Creator:本地部署与Stable Diffusion实战指南
  • Flutter AI聊天界面开发:flutter_gpt_box组件库深度解析与实战
  • 为AI智能体构建长期记忆系统:从向量检索到个性化对话实践
  • 揭秘Midjourney“树胶重铬酸盐”风格指令:3步精准触发古典印相质感,92%用户从未用对的隐藏参数组合
  • OpenClaw信号处理库:模块化设计赋能嵌入式实时信号处理
  • LeetCode 拼接最大数字题解
  • AI驱动工作流自动化:从原理到实践,构建智能效率引擎
  • 开源医疗AI智能体平台:多智能体协同与RAG技术实战解析
  • 开源项目精细化协作:从蓝图到任务,LetsFG如何重塑早期开发流程
  • 从零到显示:用CubeMX+LVGL 8.3给你的STM32项目快速加个UI界面
  • 基于RAG的智能知识库问答系统:从原理到部署实战