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

后言

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

相关推荐
走在路上的菜鸟17 小时前
Android学Dart学习笔记第十七节 类-成员方法
android·笔记·学习·flutter
AI科技星17 小时前
质量定义方程的物理数学融合与求导验证
数据结构·人工智能·算法·机器学习·重构
小羊学伽瓦17 小时前
ThreadLocal
java·jvm·算法
程芯带你刷C语言简单算法题17 小时前
Day30~实现strcmp、strncmp、strchr、strpbrk
c语言·学习·算法·c
桓峰基因17 小时前
SCS 60.单细胞空间转录组空间聚类(SPATA2)
人工智能·算法·机器学习·数据挖掘·聚类
Miqiuha17 小时前
关注feed流系统设计学习
学习
天赐学c语言17 小时前
12.17 - 合并两个有序数组 && include<> 和 include““ 的区别
c++·算法·leecode
摇摆的含羞草17 小时前
Java加解密相关的各种名词的含义,各种分类的算法及特点
java·开发语言·算法
阿蒙Amon17 小时前
JavaScript学习笔记:16.模块
javascript·笔记·学习
im_AMBER17 小时前
Leetcode 79 最佳观光组合
笔记·学习·算法·leetcode