首页 > 其他分享 >738. 单调递增的数字(leetcode)

738. 单调递增的数字(leetcode)

时间:2024-08-30 22:04:23浏览次数:12  
标签:int 一位 -- num flagNine 738 leetcode 单调

https://leetcode.cn/problems/monotone-increasing-digits/description/

class Solution {
    public int monotoneIncreasingDigits(int n) {
        // 返回单调递增的最大数字
        // 思路比较巧妙的贪心题,需要仔细考虑两个相邻位之间的比较
        // 一旦发现有前一位比后一位大,则从前一位开始,后面的所有位都置为9,前一位--
        char[] num = String.valueOf(n).toCharArray();
        int flagNine=Integer.MAX_VALUE;
        for(int i=num.length-1;i>=1;i--)
        {
            // 前一位比后一位大,则需要--,更新置为9的flag
            if( num[i-1] -'0' > num[i]-'0')
            {
                num[i-1]--;
                flagNine=i;
            }
        }
        for(int i=flagNine;i<num.length;i++)num[i]='9';
        return Integer.valueOf(String.valueOf(num));
        

    
    }
}

 

标签:int,一位,--,num,flagNine,738,leetcode,单调
From: https://www.cnblogs.com/lxl-233/p/18389580

相关文章

  • Leetcode 第 408 场周赛题解
    Leetcode第408场周赛题解Leetcode第408场周赛题解题目1:3232.判断是否可以赢得数字游戏思路代码复杂度分析题目2:3233.统计不是特殊数字的数字数量思路代码复杂度分析题目3:3234.统计1显著的字符串的数量思路代码复杂度分析题目4:3235.判断矩形的两个角落是否......
  • Java LeetCode 练习
        3142.判断矩阵是否满足条件需求:        给你一个大小为mxn的二维矩阵grid。你需要判断每一个格子grid[i][j]是否满足:        如果它下面的格子存在,那么它需要等于它下面的格子,也就是grid[i][j]==grid[i+1][j]。        ......
  • 56. 合并区间(leetcode)
    https://leetcode.cn/problems/merge-intervals/description/经典题合并区间classSolution{publicint[][]merge(int[][]intervals){Arrays.sort(intervals,(a,b)->Integer.compare(a[0],b[0]));//区间合并经典题//思路是先加入第一个......
  • 7386 智力大挑战
    经验值:2400时间限制:1000毫秒内存限制:128MB题目描述Description小酷和小町是一对好朋友,他们两经常互相出题考研对方智力。老师给小酷和小町准备了一个智力大挑战。挑战的题目是这样的:老师给出一个自然数M(10≤M≤2000000),现在小酷和小町需要找出所有的连续自然数段,这些自然......
  • 【四旋翼】四旋翼无人机的几何跟踪控制(含速度和加速度误差)【含Matlab源码 7380期】
    ✅博主简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,Matlab项目合作可私信或扫描文章底部QQ二维码。......
  • 763. 划分字母区间(leetcode)
    https://leetcode.cn/problems/partition-labels/description/听说这题是字节广告一面的题有两种做法,但是思路大致相同,主要思路是先求出所有字符的出现的最远距离,然后不断往后遍历,更新当前片段的最远距离若是第一种做法,就是放在另一个循环中,不断更新最远距离,且维护这个en......
  • leetcode_128_最长连续序列解析
    题目给定一个未排序的整数数组nums,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。请你设计并实现时间复杂度为O(n)的算法解决此问题。示例1:输入:nums=[100,4,200,1,3,2]输出:4解释:最长数字连续序列是[1,2,3,4]。它的长度为4。示例2:输入......
  • 435. 无重叠区间(leetcode)
    https://leetcode.cn/problems/non-overlapping-intervals/description/贪心:思路是更新重叠的区间classSolution{publicinteraseOverlapIntervals(int[][]intervals){//区间问题,首先排序,找到发生重叠的两个区间,将右边的重叠区间移除,实际对应代码的操......
  • 452. 用最少数量的箭引爆气球(leetcode)
    https://leetcode.cn/problems/minimum-number-of-arrows-to-burst-balloons/description/思路是排序,方便计算气球重叠,难点是在重叠时更新右边界,更新为两个区间的最右重合点,因为这个点是最少一支箭就可以射掉两个气球的最右点,再去下个循环判断区间重合classSolution{......
  • LeetCode-Python-1539. 第 k 个缺失的正整数(二分)
    给你一个 严格升序排列 的正整数数组 arr 和一个整数 k 。请你找到这个数组里第 k 个缺失的正整数。示例1:输入:arr=[2,3,4,7,11],k=5输出:9解释:缺失的正整数包括[1,5,6,8,9,10,12,13,...]。第5个缺失的正整数为9。示例2:输入:arr=[1,2,3,4],k=2......