代码随想录第三十一天| 56. 合并区间 738.单调递增的数字
56. 合并区间
题目描述
给定一个区间的集合 intervals,请合并所有重叠的区间。
解题思路
-
排序区间
- 按照每个区间的起点
start升序排序,便于后续合并。
- 按照每个区间的起点
-
合并区间
- 使用两个变量
start和right分别记录当前区间的起点和终点。 - 遍历排序后的区间:
- 如果当前区间的起点
intervals[i][0]小于或等于right,说明当前区间与之前的区间重叠,更新right为两者终点的最大值。 - 如果不重叠,将当前区间
[start, right]添加到结果中,并更新start和right为当前区间的起点和终点。
- 如果当前区间的起点
- 使用两个变量
-
时间复杂度
- 排序时间复杂度为 O(n log n)。
- 遍历时间复杂度为 O(n)。
- 总时间复杂度为 O(n log n),空间复杂度为 O(n)。
Java代码
class Solution {public int[][] merge(int[][] intervals) {List<int[]> res = new LinkedList<>();Arrays.sort(intervals , (a,b) ->{return Integer.compare(a[0],b[0]);});int start = intervals[0][0];int right = intervals[0][1];for(int i = 1;i<intervals.length;i++){if(intervals[i][0]<=right){right = Math.max(intervals[i][1],right);}else {res.add(new int[]{start,right});start = intervals[i][0];right = intervals[i][1];}}res.add(new int[]{start,right});return res.toArray(new int[res.size()][]);}
}
738.单调递增的数字
题目:给定一个非负整数 N,找出小于或等于 N 的最大的整数,同时这个整数需要满足其各个位数上的数字是单调递增。
(当且仅当每个相邻位数上的数字 x 和 y 满足 x <= y 时,我们称这个整数是单调递增的。)
解题思路:
代码:
class Solution {public int monotoneIncreasingDigits(int n) {String[] strings = (n + "").split("");int start = strings.length;for(int i = strings.length-1;i>0;i--){if(Integer.parseInt(strings[i]) < Integer.parseInt(strings[i-1])){strings[i-1] = (Integer.parseInt(strings[i-1])-1) + "";start = i;}}for(int i =start;i<strings.length;i++){strings[i] = "9";}return Integer.parseInt(String.join("",strings));}
}
class Solution {public int monotoneIncreasingDigits(int n) {String s = String.valueOf(n);char[] chars = s.toCharArray();int start = chars.length;for(int i = chars.length-1;i>0;i--){if(chars[i] < chars[i-1]){chars[i-1]--;start = i;}}for(int i =start;i<chars.length;i++){chars[i] = '9';}return Integer.parseInt(String.valueOf(chars));}
}
相关文章:
代码随想录第三十一天| 56. 合并区间 738.单调递增的数字
56. 合并区间 题目描述 给定一个区间的集合 intervals,请合并所有重叠的区间。 解题思路 排序区间 按照每个区间的起点 start 升序排序,便于后续合并。 合并区间 使用两个变量 start 和 right 分别记录当前区间的起点和终点。遍历排序后的区间&#x…...
C语言基本知识 2.2void 函数
在C语言中, void 是一个重要的关键字,具有多种用途,以下是详细介绍: 函数返回值类型声明 - 当函数不需要返回任何值时,可以将函数的返回值类型声明为 void 。例如: void printMessage() { printf(…...
Spring 框架中哪些接口可以创建对象
Spring 框架中哪些接口可以创建对象 在 Spring 框架中,向 IOC 容器中添加 Bean 主要有以下几种接口和方式。Spring 提供了不同的手段来实现对象的创建和管理,涵盖了不同的需求和场景。以下是几种常用的接口和方式: 1. BeanFactory 接口 Be…...
豆瓣书摘 | 爬虫 | Python
获取豆瓣书摘,存入MongoDB中。 import logging import timeimport requests from bs4 import BeautifulSoup from pymongo import MongoClientheaders {accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,…...
Oracle数据库物理存储结构管理
大家好,我是程序员小羊! 前言: 安装和配置Oracle数据库是一个涉及多个步骤的任务,通常包括环境准备、软件安装、数据库创建和基本配置等。以下是详细的安装与配置流程。 一、环境准备 1. 系统要求 操作系统:Wind…...
java——Map接口
Java的Map接口是一种键值对的数据结构,用于存储和操作键值对的集合。它是Java集合框架中的一部分,提供了一种以键值对形式组织数据的方法。 Map接口有多个实现类,常用的有HashMap、TreeMap和LinkedHashMap。每种实现类都有不同的特点和适用场…...
量子计算机全面解析:技术、应用与未来
标题:量子计算机全面解析:技术、应用与未来 一、什么是量子计算机? 量子计算机是一种利用量子力学原理(如叠加、纠缠和干涉)进行计算的新型计算设备。与传统计算机基于比特(0 和 1)的运算方式不…...
IDEA相关(包括但不限于快捷键,使用技巧)成长笔记
1.IDEA创建及命名规范 IDEA创建是:项目、模块、包、类 命名规范: 1.项目名全部小写 2.包名全部小写 3.类名首字母大写,一般都是使用驼峰式命名。 如:public class MyFirstClass{} 4.同上: 变量名、方法名首字母小…...
【再谈设计模式】适配器模式 ~接口兼容的桥梁
一、引言 在软件开发的复杂世界里,不同的组件、类或者系统往往有着各自独立的设计和接口定义。当需要将这些原本不兼容的部分整合在一起协同工作时,就像尝试将方形的榫头插入圆形的卯眼一样困难。适配器设计模式就如同一位神奇的工匠,能够巧妙…...
使用Cursor和Claude AI打造你的第一个App
大家好,使用Cursor和Claude AI打造应用程序是一个结合智能代码辅助和人工智能对话的创新过程。Cursor是一个编程辅助工具,它通过智能代码补全、聊天式AI对话和代码生成等功能,帮助开发者提高编程效率。Claude AI则是一个强大的人工智能平台&a…...
粗读Apache Paimon 的基本概念及其组成结构
文章目录 一、Paimon的基本概念(一)快照(二)分区(三)分桶(四)一致性保证 二、Paimon的组成结构(一)文件布局(二)存储结构(…...
c++调用 c# dll 通过 P/Invoke (详细避坑)
项目场景: VS2022 .NET8 , 项目应用的库需要支持AOT,不支持AOT的库看这里 我的c项目很奇怪,如果使用 clr 调用c# dll,会有很多报错,所以使用 P/Invoke方法,这个方法不会有任何奇怪的报错 解决方案 示例…...
李春葆《数据结构》——图相关代码
邻接矩阵结构体: #define MAX<最大结点个数> #define INF 32765 //定义无穷 typedef struct{int no;//顶点的编号;InfoType info;//顶点的其他信息 }vertexType;//顶点的类型 typedef struct{int edges[MAX][Max];//邻接矩阵数组 int vertexTy…...
Linux驱动开发第2步_“物理内存”和“虚拟内存”的映射
“新字符设备的GPIO驱动”和“设备树下的GPIO驱动”都要用到寄存器地址,使用“物理内存”和“虚拟内存”映射时,非常不方便,而pinctrl和gpio子系统的GPIO驱动,非常简化。因此,要重点学习pinctrl和gpio子系统下的GPIO驱…...
告别多品牌乱战,吉利开始觉醒
科技新知 原创作者丨思原 编辑丨蕨影 2007年,是国内自主品牌汽车萌芽的一年,当时行业普遍奉行“多生孩子好打架”战略,吉利也是在这样的背景下发布了《宁波宣言》,奠定了之后十多年的发展主导思想。 然而,新能源的快…...
Target-absent Human Attention
Abstract 预测人类注视行为对于构建能够预测用户注意力的人机交互系统非常重要。已经开发出计算机视觉模型来预测人们在搜索目标物体时的注视点。但当目标不存在于图像中时,又该如何处理呢?同样重要的是要了解当人们找不到目标时,他们如何进行搜索,以及何时停止搜索。在本文…...
<QNAP 453D QTS-5.x> 日志记录:在 Docker 中运行的 Flask 应用安装 自签名 SSL 证书 解决 Chrome 等浏览器证书安全
原因:Chrome 不信任 ssc 证书 使启用了 HTTPS,即使有使用 自签名证书 (self-signed certificate 非由可信的证书颁发机构 【CA,Certificate Authority】签发的)。浏览器 Chrome 默认不信任自签名证书,也会报 NET::ERR_…...
通过huggingface-cli下载Hugging Face上的公开数据集或模型至本地
1. 获取 Access Tokens 在使用huggingface-cli命令下载之前需要先去官网获取 Access Tokens: 获取tokens的官网链接:https://huggingface.co/settings/tokens点击新增 token: 然后选择 write 权限: 最后,这个 Access…...
论文阅读——Intrusion detection systems using longshort‑term memory (LSTM)
一.基本信息 论文名称:Intrusion detection systems using longshort‑term memory (LSTM) 中文翻译:基于长短期记忆(LSTM)的入侵检测系统 DOI:10.1186/s40537-021-00448-4 作者:FatimaEzzahra Laghrissi1* , Samira Douzi2*, Kha…...
SparkSQL的执行过程:从源码角度解析逻辑计划、优化计划和物理计划
SparkSQL的执行过程可以分为以下几个阶段:从用户的SQL语句到最终生成的RDD执行,涵盖逻辑计划、优化计划和物理计划。以下是详细的源码角度解析: 1. 解析阶段(Parsing) SQL语句解析:Spark 使用 Catalyst 引…...
SteamAutoCrack终极指南:如何快速实现游戏免Steam启动的完整教程
SteamAutoCrack终极指南:如何快速实现游戏免Steam启动的完整教程 【免费下载链接】Steam-auto-crack Steam Game Automatic Cracker 项目地址: https://gitcode.com/gh_mirrors/st/Steam-auto-crack SteamAutoCrack是一款强大的开源工具,专门用于…...
保姆级教程:SAP S/4HANA数据迁移,用LTMC从零导入会计科目(附模板避坑指南)
SAP S/4HANA会计科目迁移实战:LTMC工具全流程详解与避坑手册 当企业首次部署SAP S/4HANA时,会计科目主数据的迁移往往是财务模块实施的关键第一步。不同于传统ECC系统,S/4HANA的简化数据模型对会计科目结构提出了新要求,而Migrati…...
告别黑盒:手把手调试MTK Camera HAL3日志,定位拍照卡顿与预览异常
告别黑盒:手把手调试MTK Camera HAL3日志,定位拍照卡顿与预览异常 在移动影像开发领域,MTK平台的Camera HAL3层问题排查常被开发者视为"黑盒操作"。当用户反馈"拍照延迟明显"或"预览画面卡顿"时,缺…...
CAN总线终端电阻:从120Ω与0.25W的选型,看信号完整性与系统鲁棒性设计
1. 为什么CAN总线需要终端电阻? 第一次接触CAN总线设计时,我也曾疑惑:为什么要在总线两端各加一个120Ω的电阻?直接连线不行吗?直到亲眼目睹不加电阻时总线上的信号振荡,才真正理解终端电阻的重要性。 CAN总…...
终极跨平台音频下载解决方案:喜马拉雅FM批量下载器完整指南
终极跨平台音频下载解决方案:喜马拉雅FM批量下载器完整指南 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 你是否经常…...
终极解决方案:VisualCppRedist AIO一站式修复Windows运行库问题
终极解决方案:VisualCppRedist AIO一站式修复Windows运行库问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否经常在Windows系统上遇到"…...
AI编程助手工程化实践:六大技能解决智能体记忆、验证与协作难题
1. 项目概述:从“玩具”到“工具”的智能体技能包如果你正在用 Claude Code、Codex 或者 OpenClaw 这类智能体来辅助编程,大概率经历过这样的挫败感:你让它改一个功能,它信誓旦旦地说“完成了”,结果你一跑测试&#x…...
告别黑盒:手把手教你用S-Function在Simulink里打造自己的16QAM调制解调模块
从零构建16QAM通信链路:Simulink S-Function深度开发指南 在通信系统仿真领域,现成模块虽然方便,却常常成为深入理解底层原理的障碍。当我们需要验证特定算法、优化系统性能或进行教学演示时,自主构建核心模块的能力显得尤为重要…...
Chopstick工具:高效管理多Git仓库的批量操作与自动化实践
1. 项目概述与核心价值 最近在GitHub上看到一个挺有意思的项目,叫 chopstick ,作者是DustinMeyer1010。光看名字你可能会联想到筷子,但它的实际功能跟餐具可没半点关系。这是一个专门用于 代码仓库(Repository)克隆…...
BepInEx IL2CPP启动失败终极解决指南:从异常诊断到游戏正常运行
BepInEx IL2CPP启动失败终极解决指南:从异常诊断到游戏正常运行 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx作为Unity游戏插件框架,为玩家和开发…...
