贪心算法习题其四【力扣】【算法学习day.21】

前言

###我做这类文档一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?)我的解析也不会做的非常详细,只会提供思路和一些关键点,力扣上的大佬们的题解质量是非常非常高滴!!!


习题

1.单调递增的数字

题目链接: 738. 单调递增的数字 - 力扣(LeetCode)

题面:

**基本分析:**找到不满足的索引让其减一,后面全为9,这是关键步骤

代码:

java 复制代码
class Solution {
    public int monotoneIncreasingDigits(int N) {
        char[] arr = (N + "").toCharArray();
        int max = -1, idx = -1;
        for (int i = 0; i < arr.length - 1; i++) {
            if (max < arr[i]) {
                max = arr[i];
                idx = i;
            }
            if (arr[i] > arr[i + 1]) {
                arr[idx] -= 1;
                for(int j = idx + 1;j < arr.length;j++) {
                    arr[j] = '9';
                }
                break;
            }
        }
        return Integer.parseInt(new String(arr));
    }
}

后言

上面是贪心算法的部分习题,希望有所帮助,一同进步,共勉!

相关推荐
怕浪猫9 小时前
从 Windows 换到 Mac 三个月,我真香了
算法·面试·架构
aichitang20249 小时前
前端小skill
前端·人工智能·算法·ai·前端框架
水云桐程序员10 小时前
量子力学概论,量子力学概念总结
笔记·科技·学习·量子计算
All for pursuit.11 小时前
【链表-9】146.LRU缓存
数据结构·c++·算法·leetcode
木子算法11 小时前
测出来的值会抖:约束和目标带噪声时,「可行」和「更好」该怎么判
人工智能·算法·目标跟踪
圣保罗的大教堂11 小时前
leetcode 1477. 找两个和为目标值且不重叠的子数组 中等
leetcode
三克的油12 小时前
java-学习1
java·开发语言·学习
j7~12 小时前
【C++微服务项目开发脚手架】(接口篇一)gflags + gtest + spdlog 接口学习笔记
c++·学习·gtest·项目开发·spdlog·gflags·c++项目微服务开发脚手架
hanlin0312 小时前
刷题笔记:力扣第144题-二叉树的前序遍历
笔记·算法·leetcode
金士曼12 小时前
从规则到涌现:算法认知的三个层次
算法