当前位置: 首页 > 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;这…...

3大突破:开源工具VideoCaptioner如何让零门槛实现AI实时字幕效率提升300%

3大突破&#xff1a;开源工具VideoCaptioner如何让零门槛实现AI实时字幕效率提升300% 【免费下载链接】VideoCaptioner &#x1f3ac; 卡卡字幕助手 | VideoCaptioner - 基于 LLM 的智能字幕助手&#xff0c;无需GPU一键高质量字幕视频合成&#xff01;视频字幕生成、断句、校正…...

CAPL实战指南:如何构建并发送带计数器的自定义周期报文

1. 为什么需要带计数器的周期报文 在汽车电子测试中&#xff0c;模拟ECU通信是最基础也最频繁的需求之一。想象一下&#xff0c;你正在测试一个车载娱乐系统&#xff0c;需要验证它能否正确处理来自其他ECU的周期性状态更新。这时候&#xff0c;如果只是发送固定内容的报文&…...

用嘎嘎降AI处理英文SCI论文完整教程:操作步骤和注意事项

用嘎嘎降AI处理英文SCI论文完整教程&#xff1a;操作步骤和注意事项 被问了太多次嘎嘎降AI英文论文相关的问题&#xff0c;写一篇完整教程。 主要工具是嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;&#xff0c;4.8元。第一次用的话有些细节知道和不知道差别挺大的。…...

F3D:为什么这款极简3D查看器能让你彻底告别传统软件的臃肿?

F3D&#xff1a;为什么这款极简3D查看器能让你彻底告别传统软件的臃肿&#xff1f; 【免费下载链接】f3d Fast and minimalist 3D viewer. 项目地址: https://gitcode.com/GitHub_Trending/f3/f3d 在3D设计、工程可视化和科研数据分析的日常工作中&#xff0c;你是否曾因…...

如何快速掌握PathOfBuilding:流放之路终极角色构建规划神器

如何快速掌握PathOfBuilding&#xff1a;流放之路终极角色构建规划神器 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 还在为《流放之路》复杂的天赋树和装备搭配而头疼…...

别再只建桶了!华为云OBS的5个高阶配置,让你的存储成本直降30%

别再只建桶了&#xff01;华为云OBS的5个高阶配置&#xff0c;让你的存储成本直降30% 当你的业务数据量突破TB级时&#xff0c;存储成本就会像野马一样失控。去年我们团队就经历过这样的教训——每月OBS账单突然暴涨40%&#xff0c;排查后发现是数百GB的过期日志仍按标准存储计…...

突破难关:AI专著撰写工具应用技巧,助你快速著书立说

学术专著写作困境与AI工具的崛起 对许多研究人员来说&#xff0c;撰写学术专著最大的挑战&#xff0c;就是“有限的精力”与“无尽的需求”之间的矛盾。专著的写作过程通常需要三到五年&#xff0c;甚至更长的时间&#xff0c;而研究者们在日常工作中还要应对教学、研究项目和…...

从模型到应用:深入解析Source-Free Domain Adaptation(SFDA)的核心挑战与实战策略

1. 什么是Source-Free Domain Adaptation&#xff08;SFDA&#xff09;&#xff1f; 想象一下你是一个厨师&#xff0c;花了三年时间在四川学会了做正宗川菜。现在突然被派到广东工作&#xff0c;发现当地人对辣味的接受度完全不同。更麻烦的是&#xff0c;你不能带任何四川的食…...

RMBG-2.0场景应用:广告素材制作,快速分离主体与背景

RMBG-2.0场景应用&#xff1a;广告素材制作&#xff0c;快速分离主体与背景 1. 广告设计中的背景移除痛点 在广告设计领域&#xff0c;背景移除是最常见也最耗时的任务之一。设计师们经常面临这样的困境&#xff1a; 时间成本高&#xff1a;一张普通商品图手动抠图需要5-10分…...

终极指南:5个简单步骤用eqMac提升macOS音频体验 [特殊字符]

终极指南&#xff1a;5个简单步骤用eqMac提升macOS音频体验 &#x1f3a7; 【免费下载链接】eqMac macOS System-wide Audio Equalizer & Volume Mixer &#x1f3a7; 项目地址: https://gitcode.com/gh_mirrors/eq/eqMac 想为你的Mac打造专业级的音频体验吗&#x…...