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

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

示例 1:

输入: N = 10
输出: 9
示例 2:

输入: N = 1234
输出: 1234
示例 3:

输入: N = 332
输出: 299
说明: N 是在 [0, 10^9] 范围内的一个整数。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/monotone-increasing-digits
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:高位到低位,低位到高位都可以写。

class Solution {public int monotoneIncreasingDigits(int N) {//而从贪心的角度考虑,我们需要尽量让高位与 N 的对应数位相等,故尝试让 strN[i−1] 自身数位减 1。此时已经不再受 N的限制,直接将 [i, n-1] 的位置上的数全部变为 99 即可。(题解)
//举个例子 154 遍历到4时,将4变9将5-1=4 得到149,数字一定在变小,从上一位借1String str = String.valueOf(N);char[] ch = str.toCharArray();int mark = ch.length;//用来记录从哪一位后面都要变成9for(int i=ch.length-1;i>0;i--){//i要不要等于0?再看//不用等于0因为数组没有-1if(ch[i]<ch[i-1]){mark = i;ch[i-1] -= 1;}}for(int i=mark;i<ch.length;i++){ch[i] = '9';}int res = Integer.valueOf(new String(ch));return res;}
}

单调递增的数字java相关推荐

  1. Java实现 LeetCode 738 单调递增的数字(暴力)

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

  2. 力扣刷题day32|738单调递增的数字、714买卖股票的最佳时机含手续费、968监控二叉树

    文章目录 738. 单调递增的数字 思路 难点:遍历顺序 难点:设置flag 714. 买卖股票的最佳时机含手续费 贪心思路 难点 968. 监控二叉树 思路 难点:如何隔两个节点放一个摄像头 738 ...

  3. 738. 单调递增的数字

    链接:738. 单调递增的数字 题解:https://leetcode-cn.com/problems/monotone-increasing-digits/solution/dan-diao-di- ...

  4. 20220323-738.单调递增的数字

    链接: 738. 单调递增的数字 - 力扣(LeetCode) (leetcode-cn.com) class Solution {public int monotoneIncreasingDigit ...

  5. 代码随想录训练营第37天|738.单调递增的数字、968.监控摄像头

    738.单调递增的数字.968.监控摄像头 738.单调递增的数字 对于单调递增的数字,我们可以逆序遍历一下数组,如果每个位置的数字都满足小于下一个位置,则说明这个位置满足条件. 如果一个数字不满足条 ...

  6. 738.单调递增的数字

    ''' Description: 738.单调递增的数字 Autor: 365JHWZGo Date: 2021-11-10 09:34:56 LastEditors: 365JHWZGo LastE ...

  7. leetcode第738题单调递增的数字

    leetcode第738题单调递增的数字 **贪心:**这个题目贪心的思路我是真找不见,和贪心相关联的地方在哪里呢? class Solution {public int monotoneIncrea ...

  8. Leecode 738. 单调递增的数字 贪心

    原题链接:Leecode 738. 单调递增的数字 代码写的是真烂,,,可读性就是"仅自己可读"的程度... class Solution {public:int monotone ...

  9. [Leetcode]738. 单调递增的数字

    当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的. 给定一个整数 n ,返回 小于或等于 n 的最大数字,且数字呈 单调递增 . 示例 1: 输入: ...

最新文章

  1. 【刘文彬】RPC的基础:调研EOS插件http_plugin
  2. 用按键精灵自动消除行号失败记
  3. spark on mesos 两种运行模式
  4. 记录webpack使用问题,使用报错“UnhandledPromiseRejectionWarning,file-loader图片过大,无法加载图片,打包html文件报错TypeError
  5. 网络应用程序设计模式
  6. gdb查看空指针 linux_5 个鲜为人知 GNU 调试器(GDB)技巧
  7. leetcode—— 401. 二进制手表(使用到将数字转换为字符)
  8. 转:Openflashchart笔记
  9. CSS3 浮动与定位
  10. leetcode python3 简单题13. Roman to Integer
  11. yum info 查不到nginx下载info的问题
  12. Java 基础入门训练
  13. java 从服务器下载文件并保存到本地
  14. ECC算法的详细说明
  15. FFmpeg获取网络摄像头数据解码
  16. 知乎热议:如何成为中国科学院院士?
  17. 大四毕业找工作真的很难?
  18. 【食品化学与营养】第三章 碳水化合物的化学与营养 笔记
  19. 5G时代的应用场景及商业模式和财富商机
  20. 量化私募非常流行使用的量化基金策略

热门文章

  1. Android Studio升级后 出现在No subject alternative DNS name matching services.gradle.org found.
  2. 区块链如何深刻变革现代金融?
  3. 监管大屏系统_低压配电系统的概念,智慧配电室监管大屏功能
  4. 产品迭代:通过数据分析迭代方向
  5. 「Mac安装ps」Adobo Photoshop 2023 下载安装详情教程,支持 AI 插件的 24 版 Photoshop
  6. 激光甲烷传感器的优势对比
  7. 从2891个专栏里找出来的宝贝,望珍惜
  8. 关SISCO的软件有几点要说明
  9. 服务器防沉迷系统,明日之后防沉迷系统解读 两个小时也能领跑服务器
  10. 第六天 - 安装第二、三台CentOS - SSH免密登陆 - hadoop全分布式安装、配置、集群启动