贪心算法习题其四【力扣】【算法学习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));
    }
}

后言

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

相关推荐
wang09075 分钟前
硬着头皮学数据结构和算法之Myers算法
数据结构·算法
蓝悦无人机17 分钟前
无人机系列之飞控算法:从PID到AI,飞行控制的核心进化
人工智能·算法·无人机·飞控系统
憨波个19 分钟前
【说话人日志】DiariZen
人工智能·深度学习·算法·语音识别
用户73416810354821 分钟前
被忽视的输入:为什么变工况故障诊断需要引入控制回路信号?
算法
扶风ff26 分钟前
练题簿在线免费刷题:创建个人任务,把刷题、听题和模考目标放到每天的学习中
开发语言·javascript·学习·小程序
垆边人似月.33 分钟前
华为机试题 :最长递增子序列题目
数据结构·c++·算法·华为
动词ing1 小时前
【题目练习】算法 组合总和
算法
程序员-Benothing1 小时前
Linux文本排序统计命令:sort、uniq、wc、cut、tr实战
java·开发语言·算法
开发者联盟league1 小时前
c++11 使用chrono库转换时间点和字符串,计算时间点间隔
java·c++·算法
SatanII1 小时前
MySQL 数据库学习总结|理论 + SQL 实训完整笔记
数据库·学习·mysql