首页 > 其他分享 >刷刷刷 Day 37 | 738. 单调递增的数字

刷刷刷 Day 37 | 738. 单调递增的数字

时间:2023-02-25 21:11:17浏览次数:67  
标签:数字 int 递增 37 start cs 738 Day

738. 单调递增的数字

LeetCode题目要求

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

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

示例

输入: n = 10
输出: 9
解题思路

以 98 为例,找到最大的比它小的递增数字是,89.
因为 9 > 8, 不是递增,那就得把 9 - 1 = 8 ,而 个人的 8 直接变成 9 ,那么能保证最大递增

上代码

class Solution {
    public int monotoneIncreasingDigits(int n) {
        
        String s = String.valueOf(n);
        char[] cs = s.toCharArray();

        // 需要补 9 的标记开始位置
        int start = s.length();

        // 从倒数第二个数开始
        for (int i = s.length() - 2; i >= 0; i--) {
            // 前面的比后面的大
            if (cs[i] > cs[i+1]) {
                cs[i]--;
                start = i+1;
            }
        }

        for (int i = start; i < s.length(); i++) {
            cs[i] = '9';
        }
        
        return Integer.parseInt(String.valueOf(cs));

    }
}

附:学习资料链接

标签:数字,int,递增,37,start,cs,738,Day
From: https://www.cnblogs.com/blacksonny/p/17155385.html

相关文章

  • 代码随想录算法训练营Day24 回溯算法|216.组合总和III 17.电话号码的字母组合
    代码随想录算法训练营216.组合总和III题目链接:216.组合总和III找出所有相加之和为 n的 k 个数的组合。组合中只允许含有1- 9的正整数,并且每种组合中不存在重复......
  • day04-原生的API&注解方式
    原生的API&注解方式1.MyBatis原生的API调用1.1原生API快速入门需求:在前面的项目基础上,使用MyBatis原生的API完成,即直接通过SqlSession接口的方法来完成操作1.2代码实......
  • Day01
    MarkDown学习二级标题三级标题四级标题 字体halloworldhalloworldhalloworldhalloworld 引用自己学习Java走向人生巅峰 分割线 图片  ......
  • 刷刷刷 Day 36 | 56. 合并区间
    56.合并区间LeetCode题目要求以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回 一个不重叠的区......
  • 小白成神day4
    用户交互Scannerscanner对象来获取用户的输入Scanners=newScanner(System.in);通过Scanner类的next()与nextLine()方法来获取输入的字符串,在读取之前一般使用hasN......
  • 刷刷刷 Day 36 | 763. 划分字母区间
    763.划分字母区间LeetCode题目要求给你一个字符串s。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。注意,划分结果需要满足:将所有划分结果按......
  • 《分布式技术原理与算法解析》学习笔记Day22
    哈希与一致性哈希在分布式系统中,哈希和一致性哈希是数据索引或者数据分布的常见实现方式。数据分布设计原则在分布式数据存储系统中,做存储方案选型时,一般会考虑以下因素......
  • Day 24 24.1:逆向分析1 - Steam案例
    STEAM逆向分析url:https://store.steampowered.com/login/?redir=&redir_ssl=1分析思路:输入用户名和密码后,点击登录按钮,通过抓包工具捕获点击登录按钮后发起请求对......
  • #373. 「USACO1.1」Friday the Thirteenth 题解
    #373.「USACO1.1」FridaytheThirteenth题解题目传送门题目知识点模拟+数学闰年知识点题意说明写一个程序来计算在n年里13日落在星期一,星期二......星期日的次数......
  • 题解 LOJ P2393 「JOISC 2017 Day 2」门票安排
    题意咕咕咕。题解这题太神了,无限膜拜p_b_p_b,搬运一波题解。首先考虑二分。题意等价于选一些区间进行反转。首先注意到反转的区间两两有交,不然不反转一定更优。设反转......