LeetCode-738

2023-11-08

738. 单调递增的数字

给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。

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

Example

input
N = 10
output
9
input
N = 1232
output
1229
input
N = 332
output
299

Note

  • N 是在 [ 0 , 1 0 9 ] [0, 10^9] [0,109] 范围内的一个整数。

思路

  1. 要满足单调递增,那么限制在于后面的数字能否取得到,所以我们从低位开始判断
  2. 通过对样例进行分析,以及题意理解,可以得到这样的过程
  3. 如果当前位置数值 ≥ 高一位数值,那么保持不变
  4. 如果当前位置数值 < 高一位数值,那么高位数值-1,后面全部变成9
  5. 实现思路不难,难点在于优雅的编码实现,下面的代码是从一位大佬那里学到的

代码如下

class Solution {
public:
    int monotoneIncreasingDigits(int N) {
        int p=1,res=N;
        while(p <= res/10)
        {
            int n = res/p %100;//得到后两位
            p*=10;
            if(n/10 > n%10)//如果前面大于后面
                res=res/p*p -1;//前面位数大小-1,后面全部为9
        }
        return res;
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode-738 的相关文章

随机推荐

  • android学习笔记——GridView控件(九宫格布局)

    GridView跟ListView都是比较常用的多控件布局 而GridView更是实现九宫图的首选 先来介绍一下要做的工作 有一个完整的思路 1 在activity main xml中加一个GridViwe 2 编写一个自定义的Adapte
  • 论文笔记:MEASURING DISENTANGLEMENT: A REVIEW OF METRICS

    0 摘要 学习解缠和表示数据中的变化因素是人工智能中的一个重要问题 虽然已经取得了许多关于学习这些表示的进展 但如何量化解缠仍然不清楚 虽然存在一些度量标准 但对它们的隐含假设 真正衡量的内容以及限制了解甚少 因此 当比较不同的表示时 很难
  • 基于深度强化学习的柔性作业车间动态调度

    文献来源 International Journal of Production Research 2022 南洋理工大学 IJPR 2022 Full article Deep reinforcement learning for dyn
  • JPS命令的安装和使用

    一 简介 jps Java Virtual Machine Process Status Tool 是JDK 1 5提供的一个显示当前所有java进程pid的命令 简单实用 非常适合在linux unix平台上简单察看当前java进程的一些
  • android NDK编译openblas和向量检索库faiss

    设置android SDK和NDK路径 例如 export SDK ROOT root codes my sdk sdk export NDK ROOT root codes my sdk sdk ndk 24 0 8215888 sdk和
  • 自制带串口的J-Link OB 072

    自制带串口的J Link OB 072 普通的三线J link不带串口 使用起来比较麻烦 于是找资料自制了一个J Link OB 072 主芯片是stm32f072c8t6 带串口 使用方便 先上图 自带信仰加持 一遍调通 急急如律令 依然
  • vue 高德地图添加放大缩小地图、转盘工具

    新建文件 amap vue
  • Guided Diffusion/Diffusion Models Beat GANs on Image Synthesis (Paper reading)

    Guided Diffusion Diffusion Models Beat GANs on Image Synthesis Paper reading Prafulla Dhariwal OpenAI NeurlPS2021 Cited
  • JavaScript——大数组的合并问题及不同数组合并方法的探究

    JavaScript 大数组的合并问题及不同数组合并方法的探究 最近在处理模型数据的时候出现了一个问题 当合并不同模型的vertex等数据的时候 从网上查了查都说Array prototype push 这个好 结果我使用了这个方法却报错了
  • VUE的项目中怎样修改浏览器窗口的 LOGO

    vue项目如何修改上图浏览器的标题栏的图标 在public目录中的index html添加如下代码 注意logo svg是图片 图片位置在public目录下
  • 【直接收藏】前端 VUE 高阶面试题(一)

    1 说说vue动态权限绑定渲染列表 权限列表渲染 首先请求服务器 获取当前用户的权限数据 比如请求 this http get rights list 获取到权限数据之后 在列表中使用v if v if else的组合来展示不同的内容
  • 性能测试常见问题分析

    性能测试常见问题分析 1 请你个人描述一下性能测试的意义和作用 说出因性能不良造成的质量事故 2 如何进行性能测试 请说出整体的性能测试流程 a 分析测试范围 测试对象 如频繁使用的功能 频繁调用的接口 大量数据库读写操作多的功能 大量读写
  • 信息组织川大972

    网络信息组织 1 网络信息环境 1 1 网络发展的三个阶段 2 语义网信息组织 2 1 万维网与语义网 2 2 语义网技术架构 2 3 本体 2 4 关联数据 2 5 网站信息架构 3 Web2 0信息组织方法 3 1 标签法 3 2 Wi
  • 多元Huffman编码问题

    题目链接 题意 最多可以让k堆合并 每一次合并的花费为河合并堆的数量 问最多和最少的花费 题解 最少的花费一定是每次合并的堆数尽可能多 这样我们就会减少前面已经合并的堆的重复计算 所以 每次合并k堆时最少 每次合并2堆时最大 另外 最少的时
  • [WTL] STLport安装指南

    STLport安装指南STLport 4 6 是完全兼容ANSI C 标准的类库 This distribution contains STLport sources only no binaries To use STLport iost
  • Word文件删除后怎么恢复?好用的恢复方法分享

    Word文件删除后怎么恢复 在工作和学习的过程中 我们难免会遇到丢失数据的情况 比如有时候不小心删除了Word文件 或者Word文件在操作过程中意外卡顿导致丢失 有什么好方法恢复呢 下面就一起来了解下 遇到Word文件数据丢失不要慌张 首先
  • Java项目的开发流程

    一个java开发项目过程 1 项目启动 1 项目组成立 公司成员 客户成员 2 制定项目预期目标 3 制定项目计划周期 4 建立好项目组成员沟通机制 2 需求调研 1 创建调研计划 协调调研时间 2 收集客户资料 获取客户需求 所有的资料都
  • Redis缓存雪崩、穿透、击穿原因分析和解决方案,附Redis管道使用技巧

    先给大家附上其他几篇文章 感兴趣的自行开车导航 Redis过期策略和持久化机制全面揭秘 教你如何合理配置 深入浅出Redis 一 从版本特性到数据类型到线程模型 带你了解Redis的核心特性和应用场景 一次redis OOM问题分析解决 r
  • 阿里云ECS漏洞修复简单办法

    阿里云的安全检测功能会每天检测主机上的漏洞 然后短信推送 让你试用漏洞修复功能 或购买修复功能 其实不需要购买 在主机上执行 apt upgrade 或者 yum upgrade 就自动修复了 其实就是更新软件包 更新内核 然后重启就可以了
  • LeetCode-738

    738 单调递增的数字 给定一个非负整数 N 找出小于或等于 N 的最大的整数 同时这个整数需要满足其各个位数上的数字是单调递增 当且仅当每个相邻位数上的数字 x 和 y 满足 x lt y 时 我们称这个整数是单调递增的 Example