【代码随想录|贪心算法05】

AI编程工具选哪个更高效?开发者深度评测 无论是代码生成、错误修复,还是架构设计,AI都能提供强大的辅助能力。然而,市面上AI编程工具众多,如何选择最适合自己的?本文将从代码质量、响应速度、多语言支持、集成能力等多个维度,为你解析2025年最主流的几款AI编程工具,帮助你做出更高效的选择。根据2025年最新调研数据,全球超过85%的开发者正在使用AI编程工具辅助开发,相比2023年增长了近40%。合理利用AI,能让你的开发效率提升数倍,但真正的核心竞争力,仍然在于你的编程思维和解决问题的能力。:技术较强的开发者、重视数据隐私的企业。 阅读详情

56.合并区间

题目链接56. 合并区间 - 力扣(LeetCode)

这道题思路跟前两道也很像,就是更新把相同的区间合并而已。

class Solution {
public:
static bool cmp(const vector<int>& a,const vector<int>& b){
    return a[0]<b[0];
}
    vector<vector<int>> merge(vector<vector<int>>& intervals) {
        vector<vector<int>> result;
        sort(intervals.begin(), intervals.end(),cmp);
        result.push_back(intervals[0]);
        for (int i = 1; i < intervals.size(); i++) {
            if (intervals[i][0] <= intervals[i - 1][1]) {
                result.back()[1] = max(intervals[i][1], result.back()[1]);
            } else {
                result.push_back(intervals[i]);
            }
        }
        return result;
    }
};

738.单调递增的数字

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

我滴妈,这道题的思路好牛啊

我觉得大概的思路就是先把这个数字转成字符串,好对每个数进行变化,

思路就是把从后往前遍历,前面的数比现在的数大的话就把前面的数-1,让后面这个数有选择大的数(9)的可能

但是如果直接把前一位-1后一位设置成9,如果传入的数是1000的话,结果就会变成0900,所以我设置一个flag来记录当前数要设置为9的地方,后面统一都设置为9了,因为我只要这个数为9,后面的数肯定都是9(没有比9更大的数了)

然后最后把字符串转成数值型返回答案

那为什么不从前往后进行修改?

因为从前往后进行修改的话,我后面的数修改了会把一个数-1,会影响已经遍历的的数的大小关系,从后往前遍历的话,我就可以一边遍历一边用修改后的结果

class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        string result=to_string(n);
        int flag=result.size();//满足条件的话就不设9,所以初始赋值为整个数的大小
        for(int i=result.size()-1;i>0;i--){
            if(result[i-1]>result[i]){
                result[i-1]=result[i-1]-1;//前面的数-1
                flag=i;//这个数和后面的都准备设置为9
            }
        }
        for(int i=flag;i<=result.size()-1;i++){
            result[i]='9';//遍历到整个数的末尾
        }
        
        return stoi(result);
    }
};

从零到一:基于Esp32与LVGL的ST7789屏幕驱动全流程实战 本文详细介绍了基于Esp32与LVGL的ST7789屏幕驱动全流程实战,包括环境准备、驱动文件改造、硬件接口配置、LVGL集成与优化等关键步骤。通过VSCode+ESP-IDF开发环境,读者可以快速掌握SPI模式下的屏幕驱动开发,解决常见问题如颜色错乱、画面撕裂等,并实现LVGL的高效集成与性能优化。 阅读详情

相关推荐

不懂就学之挑战成为WorldQuant Brain顾问的第1天

WorldQuant Brain 是由 WorldQuant 公司开发的一个基于人工智能和机器学习的量化研究平台,旨在帮助量化研究员发现和构建有效的投资策略。WorldQuant 是一家全球领先的量化投资公司,专注于利用数据科学、技术和金融工程开发量化交易策略。

Yanbang1的博客 8385

【代码随想录Day31】贪心算法Part05

代码随想录。

Shayne 的博客 803

快速上手springboot+vue的前后端分离项目

使用webStorm新建项目后,把 .lock文件删除后项目运行才不报错,配置文件 vue.config.js 中加入 lintOnSave: false 关闭eslint语法检测。在多层嵌套的父子组件之间传递状态已经十分麻烦,而Vue更是没有为兄弟组件提供直接共享数据的办法。基于这个问题,许多框架提供了解决方案——使用全局的状态管理器,将所有分散的共享数据交由状态管理器保管,Vue也不例外。其中一种解决CORS 的方法, 在springboot项目中跨域的方法或类加上@CrossOrigin注解。

m0_61950264的博客 1905

代码随想录day31 贪心算法05

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi]。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。day31 贪心算法(05)

m0_73678713的博客 404

足球大数据分析入门:从赔率到预测的完整流程(附数据集)

本文提供了一份足球大数据分析的完整实战指南,涵盖从数据采集、清洗、特征工程到模型构建与评估的全流程。文章详细介绍了如何利用公开数据集与API获取数据,并通过逻辑回归、随机森林等模型进行比赛结果预测,最后强调了模型评估与策略回测的重要性,帮助读者构建自己的分析框架。

r7s8t的博客 404

RWEQ土壤风蚀模型的估算与变化归因分析

本次以介绍RWEQ模型的基本原理及数据需求,再结合案例讲解RWEQ模型中区域地理空间数据库构建的方法和各个参量提取的原理与方法,最后结合典型案例进行综合讲解风蚀模数估算、制图及归因分析。空间分析与制图:提取分析、局部分析、邻域分析、区域分析、插值分析、平滑处理、像元提取、采样与重采样。以某实际应用为案例,掌握RWEQ模型进行当地土壤风蚀量空间分布分析整体流程。地图服务器、在线地图、范围指示器、格网、表格、基础地图服务使用规则介绍。掌握土壤风蚀模型的原理、优势点及因子组成。

2301_77413856的博客 1193

代码随想录算法训练营Day36|贪心算法05

贪心的范围题目

weixin_57654532的博客 100

Android Binder的两三事--基于Android14源码

Android14-Framework-Binder

保持专注,保持热爱 1140

代码随想录训练营打卡Day31| 贪心算法part05

核心思想:每一步都选择当下看起来最优的选项,希望整体最优。关键条件“最优子结构”:局部最优能导出全局最优。“无后效性”:当前决策不影响后续最优决策。例题代表活动选择(Activity Selection)零钱兑换 II(但只取最大面值可行情况)Huffman 编码(最优合并问题)

m0_46625804的博客 920

基于STM32L4XX 、HAL库的ATD5984步进电机驱动器驱动程序应用设计

一、简介: ATD5984是一款内部集成了译码器的微特步进电机 驱动器,能使双极步进电机以全、半、1/4、/1/8、1/16 和1/32步进模式工作。步进模式由逻辑输入管脚MSx选 择。其输出驱动能力达到28V±1.6A。 译码器是ATD5984易于使用的关键,通过STEP管脚 输入一个脉冲就可以使电机完成一次步进,省去了相序 表,高频控制线及复杂的编程接口,使其更适于没有复 杂的微处理器或微处理器负担过重的场合。 在步进操作期间,ATD5984的内部电路可以自动

PP_Cottage的博客 406

【数据集】1970-2023年全球温室气体排放 GHG 数据集 EDGAR

1970-2023年全球温室气体排放 GHG 数据集 EDGAR

WW、forever的博客 1172

代码随想录算法训练36 | 贪心算法 part05

今天的三道题目,都算是 重叠区间 问题,大家可以好好感受一下。都属于那种看起来好复杂,但一看贪心解法,惊呼:这么巧妙!还是属于那种,做过了也就会了,没做过就很难想出来。不过大家把如下三题做了之后,重叠区间 基本上差不多了。435. 无重叠区间。763.划分字母区间。本题相对来说就比较难了。

Hello__Word___的博客 479

【Davinci开发】:MPU(内存保护)

【Davinci开发】:MPU(内存保护)

2207

代码随想录算法训练营第27天 | 第八章 贪心算法 part05

第八章 贪心算法 part05 56. 合并区间 738. 单调递增的数字 968. 监控二叉树 (可跳过) 总结

zxjiaya的博客 877

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

代码随想录D30-31 贪心算法04&05 Python

452. 用最少数量的箭引爆气球 435. 无重叠区间 763. 划分字母区间

weixin_66889171的博客 753

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

76代码随想录--贪心算法part05

56合并区间 738单调递增的数字

weixin_48268093的博客 223

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

代码随想录算法训练营 贪心算法part05

假设在某一种最优的选择方法中,[lk,rk]是首个(即最左侧的)区间,那么它的左侧没有其它区间,右侧有若干个不重叠的区间。设想一下,如果此时存在一个区间 [lj,rj],使得 rj<rk ,即区间 j 的右端点在区间 k 的左侧,那么我们将区间 k 替换为区间 j,其与剩余右侧被选择的区间仍然是不重叠的。我们可以不断地寻找右端点在首个区间右端点左侧的新区间,将首个区间替换成该区间。由于我们选择的是首个区间,因此在左侧不会有其它的区间,那么左端点在何处是不重要的,我们只要任意选择一个右端点最小的区间即可。

m0_63297917的博客 119

代码随想录打卡Day36 | 贪心算法part05

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi]。像 "ababcbacadefegde", "hijhklij" 这样的划分是错误的,因为划分的片段数较少。输入: intervals = [[1,2],[2,3],[3,4],[1,3]]划分结果为 "ababcbaca"、"defegde"、"hijhklij"。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s。解释: 移除 [1,3] 后,剩下的区间没有重叠。

lionelwhl的博客 261

代码随想录算法训练营 Day27 | 贪心算法 part05

假设数字是 332。从前向后:遇到3和3,没问题。遇到3和2,递减了。把2变成9,前面的3减 1 变成2。结果是 329。329依然不是单调递增(3 > 2而且329也不是小于332的最大单调递增数(正确答案是299这道题的难点在于:我们不想在叶子上装摄像头,因为叶子太多了;我们想在尽量高的地方装摄像头,覆盖更多节点。如果子节点没被覆盖,父节点必须装摄像头。如果子节点装了摄像头,父节点就被覆盖了。这种自底向上的推导逻辑,必须使用后序遍历(左->右->中)。

2401_86818319的博客 346

代码随想录算法训练营day35|贪心算法05

【代码】代码随想录算法训练营day35|贪心算法05。

Lindsey_feiren的博客 499

代码随想录 day36 第八章 贪心算法 part05

● 435. 无重叠区间● 763.划分字母区间● 56. 合并区间。

weixin_60315213的博客 902

代码随想录训练营Day27:贪心算法05区间问题

思路:可以延续前面的引爆气球的思路,所以本题的贪心策略为:对于相同起始位置的,删去终点位置靠右的,只留下一个最靠左的。对于具有不同的起始位置的,但是存在重复的情况(即当前的left与前面的那个的right具有重复的地方),谁的更加靠右删除那个。最后就是如果无重复就不管了。

mooc666quq的博客 390

代码随想录算法训练营 | 贪心算法 part05

节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。当发现当前数字大于下一个数字时,就把当前数字减。给定一个二叉树,我们在树的节点上安装摄像头。:让叶子节点的父节点安摄像头,所用摄像头最少。计算监控树的所有节点所需的最小摄像头数量。从哪里开始,同时将赋值循环分离出来;,最后两位数同样被再次赋值;,后面的所有数字都设置成。:全部摄像头数量所用最少。

Fern_v的博客 661

代码随想录算法训练营55期第31天 |贪心算法part05

题目规定“a node can monitor its parent, itself, and its immediate children.” 而且通过example的图例里看出,摄像头没有设置在root 和Leaf上。对于二叉树来说,下一层的节点个数是本层节点的两倍,头结点放不放摄像头也就省下一个摄像头, 叶子节点放不放摄像头省下了的摄像头数量是指数阶别的。所以要从叶子节点开始,给期父节点是指摄像头,然后不断向上,直到到达头节点。和昨天三道重复区间的思路一致。从下向上遍历其实就是后续遍历。

scorecpl的博客 228

代码随想录算法训练营Day31||贪心算法part05+总结

贪心算法感觉没啥能总结的,全都是在做奥数题,想到了思路就很容易实现,想不到就会把简答的东西做的特别复杂。56.合并区间:和之前做的重叠区间的题目异曲同工,记得排序就行。738.单调递增的数字:一时间想不到的解决办法,写起来虽然很简单。968.监控二叉树:一刷能跳过我是真跳过呀,懒死了>_<

DetouringSnail的博客 310

《代码随想录》刷题打卡day27:贪心算法part05

思路:和前些题相同,比较简答。第一个区间就可以放进结果集里,后面如果重叠,在result上直接合并,简化操作。 【738.单调递增的数字】 思路:例如98,一旦出现strNum[i - 1] > strNum[i]的情况(非单调递增),首先想让strNum[i - 1]–,然后strNum[i]给为9,这样这个整数就是89,即小于98的最大的单调递增整数。从后向前遍历 总结

2301_77038122的博客 175
上一篇: 【代码随想录|贪心算法重叠区间问题】
下一篇: 【代码随想录|动态规划】
mazo_command
博客等级 码龄2年 275粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值