代码随想录刷题day31丨56. 合并区间,738.单调递增的数字,总结
代码随想录刷题day31丨56. 合并区间,738.单调递增的数字,总结
1.题目
1.1合并区间
-
题目链接:56. 合并区间 - 力扣(LeetCode)

-
视频讲解:贪心算法,合并区间有细节!LeetCode:56.合并区间_哔哩哔哩_bilibili
-
文档讲解:https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html
-
解题思路:贪心
- 判断区间重贴后要进行区间合并。
- 先排序,让所有的相邻区间尽可能的重叠在一起,按左边界
- 按照左边界从小到大排序之后,如果
intervals[i][0] <= intervals[i - 1][1]即intervals[i]的左边界 <= intervals[i - 1]的右边界,则一定有重叠。(本题相邻区间也算重贴,所以是<=) - 知道如何判断重复之后,剩下的就是合并了,如何去模拟合并区间呢?
- 其实就是用合并区间后左边界和右边界,作为一个新的区间,加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。
-
代码:
//时间复杂度: O(nlogn) //空间复杂度: O(logn) class Solution {public int[][] merge(int[][] intervals) {//按照左边界排序Arrays.sort(intervals,(a,b) -> Integer.compare(a[0],b[0]));List<int[]> result = new LinkedList<>();// 第一个区间就可以放进结果集里,后面如果重叠,在result上直接合并result.add(intervals[0]);for(int i = 1;i < intervals.length;i++){if(intervals[i][0] <= result.getLast()[1]){result.getLast()[1] = Math.max(intervals[i][1],result.getLast()[1]);}else{result.add(intervals[i]);}}return result.toArray(new int[result.size()][]);} } -
总结:
- 本质其实还是判断重叠区间问题。
1.2单调递增的数字
-
题目链接:738. 单调递增的数字 - 力扣(LeetCode)

-
视频讲解:贪心算法,思路不难想,但代码不好写!LeetCode:738.单调自增的数字_哔哩哔哩_bilibili
-
文档讲解:https://programmercarl.com/0738.%E5%8D%95%E8%B0%83%E9%80%92%E5%A2%9E%E7%9A%84%E6%95%B0%E5%AD%97.html
-
解题思路:贪心
- 从后往前遍历
- 一旦出现chars[i - 1] > chars[i]的情况(非单调递增),首先想让chars[i - 1]减一,chars[i]赋值9
-
代码:
class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray();// flag用来标记赋值9从哪里开始// 设置为这个默认值,为了防止第二个for循环在flag没有被赋值的情况下执行int flag = chars.length;for(int i = chars.length - 1;i > 0;i--){if(chars[i - 1] > chars[i]){chars[i - 1]--;flag = i;}}for(int i = flag;i < chars.length;i++){chars[i] = '9';}return Integer.parseInt(String.valueOf(chars));} } -
总结:
- 最后代码实现的时候,也需要一些技巧,例如用一个flag来标记从哪里开始赋值9。
2.贪心总结
-
贪心的本质是选择每一阶段的局部最优,从而达到全局最优。
-
贪心没套路,就刷题而言,如果感觉好像局部最优可以推出全局最优,然后想不到反例,那就试一试贪心吧!
-
for循环适合模拟从头到尾的遍历,而while循环适合模拟环形遍历
相关文章:
代码随想录刷题day31丨56. 合并区间,738.单调递增的数字,总结
代码随想录刷题day31丨56. 合并区间,738.单调递增的数字,总结 1.题目 1.1合并区间 题目链接:56. 合并区间 - 力扣(LeetCode) 视频讲解:贪心算法,合并区间有细节!LeetCode&#x…...
深圳建站公司-如何做网站
深圳建站公司:如何制作一个成功的网站 在信息化快速发展的今天,企业和个人越来越重视网络形象,网站成为了展示品牌、推广产品和服务的重要平台。深圳作为科技创新和经济发展的前沿城市,涌现出许多专业的建站公司,能够为…...
Google Earth Engine(GEE)——随时间推移的降雨趋势案例分析(大规模气候监测)
简介 探索 Google Earth Engine环境类型中不同的数据。到目前为止,我们主要使用光学卫星数据,并探索了植被随时间和空间的趋势。然而,仅仅跟踪植被特性的变化并不足以了解是什么驱动了它们——我们需要能够将这些动态与其他环境数据联系起来。 在交互式 GEE 控制台中为您感…...
从新手到高手:用这9个策略让ChatGPT成为你的私人顾问!
ChatGPT已经出来快一年多了,但是我发现周围的小伙伴还是处在调戏ChatGPT的阶段,并没有在日常工作和生活中发挥他应由的价值。我调研下来发现最关键的痛点就是:不知道该怎么写Prompt可以让ChatGPT输出期望的回答。 哎吆,这不正是撞…...
高精度定位系统中的关键技术:GGA、EHP、RTMC、IMU、GNSS、INS 和 RTK 的协同工作
文章目录 0. 概述1. GGA:标准的定位数据格式2. EHP:增强高度精度3. RTMC:实时监控与控制4. IMU 和 INS:惯性测量和导航系统5. GNSS:全球导航卫星系统6. RTK:实时动态差分定位7. 各技术的融合与协同GPS 数据…...
Spring3~~~
目录 多例 后置处理器BeanPostProcessor XML配置 通过注解 AOP与后置处理器 JdbcTemplate jdbc.properties jdbc.xml Test 具名参数 DAO 声明式事务 GoodsDao GoodsService xml 传播机制 种类 隔离级别 超时回滚 如果是普通的java项目,xml文件放…...
微服务CI/CD实践(五)Jenkins Docker 自动化构建部署Java微服务
微服务CI/CD实践系列: 微服务CI/CD实践(一)环境准备及虚拟机创建 微服务CI/CD实践(二)服务器先决准备 微服务CI/CD实践(三)Jenkins部署及环境配置 微服务CI/CD实践(四)…...
泰州高新区法院多层面强化固定资产管理
固定资产管理是法院的一项基础性工作,法院经费支出相当一部分用于固定资产的购置,为了提高固定资产使用质效,为执法办案提供坚实的保障,高新区法院积极探索科学合理的固定资产管理策略,更新管理思想,完善管…...
JDBC简介与应用:Java数据库连接的核心概念和技术
简短介绍 JDBC 及其重要性。 简短介绍 JDBC JDBC(Java Database Connectivity)是一种用于执行 SQL 语句的 Java API 并且独立于特定的数据库厂商。它允许开发者以一种标准的方式从 Java 应用程序中访问关系型数据库,这意味着一旦你掌握了 J…...
倒反天罡!这个AI风格模型可自由训练,还能批量生成同风格图像
在AIGC的新纪元中,模型已晋升为与算力并驾齐驱的生产力核心要素。也有不少用户反馈提到,如何利用神采PromeAI训练属于自己的风格模型?这需求必须安排!神采PromeAI「一致性模型」正式上线! 可自主训练风格化模型&#x…...
Stable Diffusion绘画 | ControlNet应用-Inpaint(局部重绘):更完美的重绘
Inpaint(局部重绘) 相当于小号的AI版PS,不但可以进行局部画面的修改,还可以去除背景中多余的内容,或者是四周画面内容的扩充。 预处理器说明 Inpaint_Global_Harmonious:重绘-全局融合算法,会对整个图片的画面和色调…...
电网谐波越限怎么处理
当电网中的谐波超出限值时,需要采取有效措施来处理和减少谐波,以保护电力系统的设备,确保电力质量。以下是处理电网谐波越限的主要措施: 1、谐波分析 监测与检测:使用谐波分析仪或功率质量分析仪监测谐波含量&#x…...
Redis中的AOF重写过程及其实际应用
引言 在Redis中,持久化是确保数据安全和稳定运行的关键部分。Redis提供了两种持久化方式:RDB快照和AOF(Append Only File)日志。相比RDB快照,AOF能够更频繁地保存数据变更,并且在服务器崩溃后能够更快地恢…...
JVM面试
1 黑马 1.1 什么是JVM 定义:JVM 就是java虚拟机,是运行在系统中的应用程序。它运行java的字节码文件,除了java还支持其他语言。作用:它主要作用就是实现java的代码一次编码,到处运行。实现java代码的跨平台性。功能&…...
【模板的特殊继承关系】 奇异的递归模板模式
一、奇异的递归模板模式范例 奇异的递归模板模式 ( C u r i o u s l y R e c u r r i n g T e m p l a t e P a t t e r n ) (Curiously \ Recurring \ Template \ Pattern) (Curiously Recurring Template Pattern)不是一种新技术,而是一种模板编程中使用的编程手…...
SAP B1 单据页面自定义 - 用户界面编辑字段
背景 接《SAP B1 基础实操 - 用户定义字段 (UDF)》,在设置完自定义字段后,如下图,通过打开【用户定义字段】可打开表单右侧的自定义字段页。然而再开打一页附加页面操作繁复,若是客户常用的定义字段,也可以把这些用户…...
MinIO【部署 02】Linux集群版本及Windows单机版、单机多目录版、分布式版(cmd启动脚本及winsw脚本分享)
Linux集群版及Windows单机版分布式版 1.Linux集群版1.1 安装启动停止1.2 将MinIO添加到服务 2.Windows2.1 官网安装2.2 本地测试2.2.1 cmd启动脚本2.2.2 winsw脚本 3.总结 1.Linux集群版 官网下载地址 https://min.io/download#/linux; 官网安装文档 https://min.i…...
手握18个大厂offer,我在大模型风口起飞
前言 在“金三银四”这一招聘旺季中,社交媒体上满是分享 offer 信息的“求助帖”。这些帖子通常只公布公司名称与薪资区间,而将具体岗位模糊化,以此作为判断岗位是否值得入职的衡量标准。 2024 年毕业的 985 硕士白丁(化名&…...
邦芒忠告:办公室聊天应避开的四个话题
职场人生风云变幻,害人之心不可有,防人之心不可无。千万别把同事当知己,无话不谈,把自己的私域圈起来当成办公室话题的禁区,轻易不让人涉足,其实是非常明智的一招,是竞争压力下的自我保护。 话题…...
交易型开放式指数基金(ETF)
交易型开放式指数基金(Exchange Traded Fund,简称 ETF)是一种投资工具,以下是用通俗易懂的语言对其进行的讲解: 一、基本概念 想象 ETF 是一个大篮子,里面装着很多不同的东西。在金融市场里,这…...
抖音图片怎么去水印?2026年在线去水印工具+方法盘点,总有一款适合你
开篇:为什么要去水印? 保存抖音图片时,总会遇到水印的困扰。这些水印包含抖音logo、发布者名称,有时还会有账号信息。对于自媒体创作者、内容整理者或普通用户来说,去除水印往往是必需的。本文将介绍当下最实用的抖音图…...
从Scratch图形化到Python代码:用树莓派给LeArm机械臂做二次开发实战
从Scratch图形化到Python代码:用树莓派给LeArm机械臂做二次开发实战 当Scratch积木块拼接的机械臂动作开始显得单调时,便是时候揭开底层控制的神秘面纱了。本文将带您跨越图形化编程的舒适区,用树莓派的Python环境重新定义LeArm机械臂的智能—…...
Agent OS:AI智能体开发的操作系统级解决方案
1. 项目概述:一个为AI智能体而生的操作系统最近在AI智能体开发圈子里,一个名为“Agent OS”的项目热度持续攀升。它来自Rivet.dev团队,定位非常清晰:一个专为构建、运行和管理AI智能体而设计的操作系统。如果你正在尝试将大语言模…...
Flutter GetX实战:从Provider迁移到GetX,我的开发效率提升了多少?
Flutter GetX实战:从Provider迁移到GetX的效率革命 当Flutter开发团队面临状态管理方案的选择时,往往会陷入一种甜蜜的烦恼——官方推荐的Provider虽然稳定可靠,但第三方库GetX却以"全家桶"式的解决方案不断吸引开发者的目光。作为…...
WandEnhancer技术解密:如何通过本地化增强重新定义游戏修改体验
WandEnhancer技术解密:如何通过本地化增强重新定义游戏修改体验 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否曾经面对游戏修改工具…...
3倍效率提升:Gofile批量下载工具实战指南
3倍效率提升:Gofile批量下载工具实战指南 【免费下载链接】gofile-downloader Download files from https://gofile.io 项目地址: https://gitcode.com/gh_mirrors/go/gofile-downloader 您是否曾为Gofile平台的文件下载效率低下而烦恼?当面对大文…...
Supabase AI Agent技能库:安全集成数据库操作与边缘函数调用
1. 项目概述:当Supabase遇上AI Agent,一个技能库的诞生最近在捣鼓AI Agent应用开发,发现一个挺有意思的现象:大家都能用LangChain、LlamaIndex这些框架快速搭出个Agent的架子,但真想让这个Agent去干点具体、有用的活儿…...
虚实实景双向映射,升级高端楼宇精细化透明治理
虚实实景双向映射,升级高端楼宇精细化透明治理副标题:原生引擎驱动动态三维场景重构,结合无感化坐标解算、遮挡自适应跨镜接续、身体指纹无源身份匹配,构筑难以复刻、适配极强的楼宇透明化技术壁垒一、方案总览当下高端楼宇运营治…...
树莓派机械爪项目实战:从硬件连接到Python控制全解析
1. 项目概述:当树莓派遇上机械爪最近在折腾一个挺有意思的小项目,叫Demwunz/openclaw-pi-installation。光看这个名字,就能猜到个大概:这是一个为树莓派(Raspberry Pi)准备的机械爪(Claw&#x…...
开源AI图像生成工具Dream-Creator:本地部署与Stable Diffusion实战指南
1. 项目概述:一个开源的AI图像生成与创作工具 最近在GitHub上闲逛,发现了一个挺有意思的项目叫“Dream-Creator”。光看名字,你可能会联想到一些AI绘画或者创意生成工具。没错,这确实是一个围绕AI图像生成的开源项目。作为一个在…...
