当前位置: 首页 > news >正文

代码随想录刷题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. 合并区间&#xff0c;738.单调递增的数字&#xff0c;总结 1.题目 1.1合并区间 题目链接&#xff1a;56. 合并区间 - 力扣&#xff08;LeetCode&#xff09; 视频讲解&#xff1a;贪心算法&#xff0c;合并区间有细节&#xff01;LeetCode&#x…...

深圳建站公司-如何做网站

深圳建站公司&#xff1a;如何制作一个成功的网站 在信息化快速发展的今天&#xff0c;企业和个人越来越重视网络形象&#xff0c;网站成为了展示品牌、推广产品和服务的重要平台。深圳作为科技创新和经济发展的前沿城市&#xff0c;涌现出许多专业的建站公司&#xff0c;能够为…...

Google Earth Engine(GEE)——随时间推移的降雨趋势案例分析(大规模气候监测)

简介 探索 Google Earth Engine环境类型中不同的数据。到目前为止,我们主要使用光学卫星数据,并探索了植被随时间和空间的趋势。然而,仅仅跟踪植被特性的变化并不足以了解是什么驱动了它们——我们需要能够将这些动态与其他环境数据联系起来。 在交互式 GEE 控制台中为您感…...

从新手到高手:用这9个策略让ChatGPT成为你的私人顾问!

ChatGPT已经出来快一年多了&#xff0c;但是我发现周围的小伙伴还是处在调戏ChatGPT的阶段&#xff0c;并没有在日常工作和生活中发挥他应由的价值。我调研下来发现最关键的痛点就是&#xff1a;不知道该怎么写Prompt可以让ChatGPT输出期望的回答。 哎吆&#xff0c;这不正是撞…...

高精度定位系统中的关键技术:GGA、EHP、RTMC、IMU、GNSS、INS 和 RTK 的协同工作

文章目录 0. 概述1. GGA&#xff1a;标准的定位数据格式2. EHP&#xff1a;增强高度精度3. RTMC&#xff1a;实时监控与控制4. IMU 和 INS&#xff1a;惯性测量和导航系统5. GNSS&#xff1a;全球导航卫星系统6. RTK&#xff1a;实时动态差分定位7. 各技术的融合与协同GPS 数据…...

Spring3~~~

目录 多例 后置处理器BeanPostProcessor XML配置 通过注解 AOP与后置处理器 JdbcTemplate jdbc.properties jdbc.xml Test 具名参数 DAO 声明式事务 GoodsDao GoodsService xml 传播机制 种类 隔离级别 超时回滚 如果是普通的java项目&#xff0c;xml文件放…...

微服务CI/CD实践(五)Jenkins Docker 自动化构建部署Java微服务

微服务CI/CD实践系列&#xff1a; 微服务CI/CD实践&#xff08;一&#xff09;环境准备及虚拟机创建 微服务CI/CD实践&#xff08;二&#xff09;服务器先决准备 微服务CI/CD实践&#xff08;三&#xff09;Jenkins部署及环境配置 微服务CI/CD实践&#xff08;四&#xff09;…...

泰州高新区法院多层面强化固定资产管理

固定资产管理是法院的一项基础性工作&#xff0c;法院经费支出相当一部分用于固定资产的购置&#xff0c;为了提高固定资产使用质效&#xff0c;为执法办案提供坚实的保障&#xff0c;高新区法院积极探索科学合理的固定资产管理策略&#xff0c;更新管理思想&#xff0c;完善管…...

JDBC简介与应用:Java数据库连接的核心概念和技术

简短介绍 JDBC 及其重要性。 简短介绍 JDBC JDBC&#xff08;Java Database Connectivity&#xff09;是一种用于执行 SQL 语句的 Java API 并且独立于特定的数据库厂商。它允许开发者以一种标准的方式从 Java 应用程序中访问关系型数据库&#xff0c;这意味着一旦你掌握了 J…...

倒反天罡!这个AI风格模型可自由训练,还能批量生成同风格图像

在AIGC的新纪元中&#xff0c;模型已晋升为与算力并驾齐驱的生产力核心要素。也有不少用户反馈提到&#xff0c;如何利用神采PromeAI训练属于自己的风格模型&#xff1f;这需求必须安排&#xff01;神采PromeAI「一致性模型」正式上线&#xff01; 可自主训练风格化模型&#x…...

Stable Diffusion绘画 | ControlNet应用-Inpaint(局部重绘):更完美的重绘

Inpaint(局部重绘) 相当于小号的AI版PS&#xff0c;不但可以进行局部画面的修改&#xff0c;还可以去除背景中多余的内容&#xff0c;或者是四周画面内容的扩充。 预处理器说明 Inpaint_Global_Harmonious&#xff1a;重绘-全局融合算法&#xff0c;会对整个图片的画面和色调…...

电网谐波越限怎么处理

当电网中的谐波超出限值时&#xff0c;需要采取有效措施来处理和减少谐波&#xff0c;以保护电力系统的设备&#xff0c;确保电力质量。以下是处理电网谐波越限的主要措施&#xff1a; 1、谐波分析 监测与检测&#xff1a;使用谐波分析仪或功率质量分析仪监测谐波含量&#x…...

Redis中的AOF重写过程及其实际应用

引言 在Redis中&#xff0c;持久化是确保数据安全和稳定运行的关键部分。Redis提供了两种持久化方式&#xff1a;RDB快照和AOF&#xff08;Append Only File&#xff09;日志。相比RDB快照&#xff0c;AOF能够更频繁地保存数据变更&#xff0c;并且在服务器崩溃后能够更快地恢…...

JVM面试

1 黑马 1.1 什么是JVM 定义&#xff1a;JVM 就是java虚拟机&#xff0c;是运行在系统中的应用程序。它运行java的字节码文件&#xff0c;除了java还支持其他语言。作用&#xff1a;它主要作用就是实现java的代码一次编码&#xff0c;到处运行。实现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)不是一种新技术&#xff0c;而是一种模板编程中使用的编程手…...

SAP B1 单据页面自定义 - 用户界面编辑字段

背景 接《SAP B1 基础实操 - 用户定义字段 (UDF)》&#xff0c;在设置完自定义字段后&#xff0c;如下图&#xff0c;通过打开【用户定义字段】可打开表单右侧的自定义字段页。然而再开打一页附加页面操作繁复&#xff0c;若是客户常用的定义字段&#xff0c;也可以把这些用户…...

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&#xff1b; 官网安装文档 https://min.i…...

手握18个大厂offer,我在大模型风口起飞

前言 在“金三银四”这一招聘旺季中&#xff0c;社交媒体上满是分享 offer 信息的“求助帖”。这些帖子通常只公布公司名称与薪资区间&#xff0c;而将具体岗位模糊化&#xff0c;以此作为判断岗位是否值得入职的衡量标准。 2024 年毕业的 985 硕士白丁&#xff08;化名&…...

邦芒忠告:办公室聊天应避开的四个话题

职场人生风云变幻&#xff0c;害人之心不可有&#xff0c;防人之心不可无。千万别把同事当知己&#xff0c;无话不谈&#xff0c;把自己的私域圈起来当成办公室话题的禁区&#xff0c;轻易不让人涉足&#xff0c;其实是非常明智的一招&#xff0c;是竞争压力下的自我保护。 话题…...

交易型开放式指数基金(ETF)

交易型开放式指数基金&#xff08;Exchange Traded Fund&#xff0c;简称 ETF&#xff09;是一种投资工具&#xff0c;以下是用通俗易懂的语言对其进行的讲解&#xff1a; 一、基本概念 想象 ETF 是一个大篮子&#xff0c;里面装着很多不同的东西。在金融市场里&#xff0c;这…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Cursor实现用excel数据填充word模版的方法

cursor主页&#xff1a;https://www.cursor.com/ 任务目标&#xff1a;把excel格式的数据里的单元格&#xff0c;按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例&#xff0c;…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容&#xff1b;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容&#xff08;CL&#xff09;与匹配电容&#xff08;CL1、CL2&#xff09;的关系 2. 如何选择 CL1 和 CL…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

yaml读取写入常见错误 (‘cannot represent an object‘, 117)

错误一&#xff1a;yaml.representer.RepresenterError: (‘cannot represent an object’, 117) 出现这个问题一直没找到原因&#xff0c;后面把yaml.safe_dump直接替换成yaml.dump&#xff0c;确实能保存&#xff0c;但出现乱码&#xff1a; 放弃yaml.dump&#xff0c;又切…...

DAY 45 超大力王爱学Python

来自超大力王的友情提示&#xff1a;在用tensordoard的时候一定一定要用绝对位置&#xff0c;例如&#xff1a;tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾&#xff1a; tensorboard的发展历史和原理tens…...