网易首页 > 网易号 > 正文 申请入驻

付费上班终于成为了现实。

0
分享至

专栏:50多种数据结构彻底征服

专栏:50多种经典图论算法全部掌握

付费上班曾经是一句玩笑,没想到现在却变成了现实。最近一网友开了一家假装上班公司,每天只需要30元,中午还提供一顿饭。

之前在网上也经常看到某某失业之后不敢让家里人知道,白天就到公园里闲逛,假装去上班,还有的是去星巴克,一坐就是一整天。其实我觉得这个真没必要,失业又不是得了绝症,和家里人沟通一下,还是能理解的,谁还没经历过失业?除了体制内的我估计至少80%的人都会经历过失业,有的还会经历过多次。失业没什么,没必要假装去上班。

--------------下面是今天的算法题--------------

来看下今天的算法题,这题是LeetCode的第56题:合并区间。

问题描述

来源:LeetCode第56题

难度:中等

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

示例1:


输入:intervals = [[1,3],[2,6],[8,10],[15,18]] 输出:[[1,6],[8,10],[15,18]] 解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].

示例2:


输入:intervals = [[1,4],[4,5]] 输出:[[1,5]] 解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

  • 1 <= intervals.length <= 10^4

  • intervals[i].length == 2

  • 0 <= starti <= endi <= 10^4

问题分析

这题让合并区间,并且合并之后的区间没有重叠,实际上就是让把重叠的区间给合并,怎么判断区间有没有重叠呢?我们以示例一为例画个图来看下。

如上图所示,要判断两个区间有没有重叠,我们 先对所有区间按照起始点进行排序 ,排序之后如果 后面区间的起始点小于前面区间的终止点 ,比如区间[2,6]和区间[1,3],那么这两个区间肯定有重叠,我们需要把他俩合并即可,合并之后的区间是[1,6],然后这个区间还要继续和后面的区间比较。

如果 后面区间的起始点大于前面区间的终止点 ,比如上面合并之后的区间[1,6]和区间[8,10],那么这两个区间肯定是没有重叠的,我们需要把前面的区间[1,6]添加到集合中,后面的区间[8,10]先不要添加,因为后面还需要查找和[8,10]有没有重叠的区间。

JAVA:

public int[][] merge(int[][] intervals) {     // 按照起始点对数组进行排序     Arrays.sort(intervals, Comparator.comparingInt(a -> a[0]));     int start = intervals[0][0];     int end = intervals[0][1];     List

  ans = new ArrayList<>();     for (int[] interval : intervals) {         if (interval[0] <= end) {// 当前区间和前面区间合并             end = Math.max(end, interval[1]);         } else {// 当前区间和前面区间不能合并,把前面的区间添加进来。             ans.add(new int[]{start, end});             start = interval[0];             end = interval[1];         }     }     ans.add(new int[]{start, end});// 最后的区间要单独添加。     // 把集合转为数组。     return ans.toArray(new int[ans.size()][]); }

C++:

public:     vector

 > merge(vector

 > &intervals) {         // 按照起始点对数组进行排序         sort(intervals.begin(), intervals.end());         int start = intervals[0][0];         int end = intervals[0][1];         vector

 > ans;         for (vector

  &interval: intervals) {             if (interval[0] <= end) {// 当前区间和前面区间合并                 end = max(end, interval[1]);             } else {// 当前区间和前面区间不能合并,把前面的区间添加进来。                 ans.push_back({start, end});                 start = interval[0];                 end = interval[1];             }         }         ans.push_back({start, end});// 最后的区间要单独添加。         return ans;     }



Python:

def merge(self, intervals: List[List[int]]) -> List[List[int]]:     # 按照起始点对数组进行排序     intervals.sort(key=lambda x: x[0])     ans = []     start, end = intervals[0][0], intervals[0][1]     for interval in intervals:         if interval[0] <= end:  # 当前区间和前面区间合并             end = max(end, interval[1])         else:  # 当前区间和前面区间不能合并,把前面的区间添加进来。             ans.append([start, end])             start = interval[0]             end = interval[1]     ans.append([start, end])  # 最后的区间要单独添加。     return ans

笔者简介

博哥,真名:王一博,毕业十多年, 作者,专注于 数据结构和算法 的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解800多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以 下载我整理的1000多页的PDF算法文档 。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
茶叶是糖尿病的“帮凶”?医生警告:不想高血糖,最好少喝5种茶

茶叶是糖尿病的“帮凶”?医生警告:不想高血糖,最好少喝5种茶

今日养生之道
2026-06-26 09:59:50
德罗赞即将离队!国王给最后期限:交易不成直接裁,快船排队接人

德罗赞即将离队!国王给最后期限:交易不成直接裁,快船排队接人

奕辰说球
2026-06-26 10:20:09
正义必胜!厄瓜多尔逆转球迷集体倒戈,裁判激发斗志主帅兑现诺言

正义必胜!厄瓜多尔逆转球迷集体倒戈,裁判激发斗志主帅兑现诺言

等等talk
2026-06-26 07:00:09
日本男足1-1平瑞典,赛后收3好3坏消息,他们大概率被巴西队淘汰

日本男足1-1平瑞典,赛后收3好3坏消息,他们大概率被巴西队淘汰

金风说
2026-06-26 09:54:45
付某兵(男,1977年生)运毒近87公斤,已核准死刑

付某兵(男,1977年生)运毒近87公斤,已核准死刑

南方都市报
2026-06-26 08:14:48
教练协会主席痛批开拓者新帅合同:“对我们价值的一记耳光”

教练协会主席痛批开拓者新帅合同:“对我们价值的一记耳光”

绿茵狂热者
2026-06-26 11:06:36
电影《抓特务》资本曝光!冯小刚布局30年,被当炮灰的不止是韩红

电影《抓特务》资本曝光!冯小刚布局30年,被当炮灰的不止是韩红

秋姐居
2026-06-25 16:41:08
带状疱疹疫苗又立大功?打完不仅防“缠腰龙”,痴呆风险也降了!

带状疱疹疫苗又立大功?打完不仅防“缠腰龙”,痴呆风险也降了!

爱医斯坦
2026-06-23 17:15:46
浴场男员工被指凌晨进入女宾区,三名女顾客称被看光

浴场男员工被指凌晨进入女宾区,三名女顾客称被看光

现代快报
2026-06-25 21:59:09
俄军的噩梦不止莫斯科:乌克兰克里米亚阳谋,不是夺地,而是放血

俄军的噩梦不止莫斯科:乌克兰克里米亚阳谋,不是夺地,而是放血

寰球经纬所
2026-06-25 20:47:36
刚刚,暴跌超2200点!芯片巨头,大跳水!霍尔木兹海峡,突传变数

刚刚,暴跌超2200点!芯片巨头,大跳水!霍尔木兹海峡,突传变数

数据宝
2026-06-26 10:43:59
72年陈毅去世,总理在悼词添写“功大于过”,毛主席:这句话去掉

72年陈毅去世,总理在悼词添写“功大于过”,毛主席:这句话去掉

历史纵观
2026-06-25 23:19:33
2026白玉兰视后预测!杨紫杨幂孙俪陪跑,视后早已锁定

2026白玉兰视后预测!杨紫杨幂孙俪陪跑,视后早已锁定

乡野小珥
2026-06-26 06:46:51
1场3-0 让世界杯F组更乱了!日本不敢战术投降,但难受的不止这1点

1场3-0 让世界杯F组更乱了!日本不敢战术投降,但难受的不止这1点

冷桂零落
2026-06-25 12:28:31
随着日本战平,荷兰大胜!引发连锁反应:巴西对手产生,韩国悬了

随着日本战平,荷兰大胜!引发连锁反应:巴西对手产生,韩国悬了

大秦壁虎白话体育
2026-06-26 09:21:36
俄媒女主持人曾言:若中国愿出兵300万,俄军很快就能打败乌克兰

俄媒女主持人曾言:若中国愿出兵300万,俄军很快就能打败乌克兰

南宗历史
2026-03-17 16:53:10
悲剧!新店开业3天,80岁尿毒症老人免费用餐猝死,家属索赔数万

悲剧!新店开业3天,80岁尿毒症老人免费用餐猝死,家属索赔数万

火山詩话
2026-06-25 07:39:51
早死晚死都得死!男子患癌放弃治疗买啤酒,医生都劝不住!

早死晚死都得死!男子患癌放弃治疗买啤酒,医生都劝不住!

童童聊娱乐啊
2026-06-25 19:03:42
为何勃列日涅夫执掌苏联18年,中风后智力衰退,却没人敢迫他下台

为何勃列日涅夫执掌苏联18年,中风后智力衰退,却没人敢迫他下台

人生录
2026-06-23 22:24:22
日本两大巨头停产六氟化钨反转,又是一次国内自媒体的自嗨

日本两大巨头停产六氟化钨反转,又是一次国内自媒体的自嗨

担扑
2026-06-25 13:16:49
2026-06-26 12:16:49
数据结构和算法
数据结构和算法
专门介绍和写算法题解的号
273文章数 4关注度
往期回顾 全部

科技要闻

美国政府要求OpenAI分批发布GPT-5.6

头条要闻

德国输球"隔空"报了8年前的仇 韩国晋级希望又变小

头条要闻

德国输球"隔空"报了8年前的仇 韩国晋级希望又变小

体育要闻

三球换里德:森林狼和黄蜂谁更癫?!

娱乐要闻

刘嘉玲想放弃梁朝伟,没有自理能力

财经要闻

悬在科技头上的达摩克利斯之剑

汽车要闻

老板们的新座驾!65万元起,尊界V800/V680开启预订

态度原创

教育
本地
游戏
健康
公开课

教育要闻

大模型高考放榜:为什么最能考试的是讯飞星火?

本地新闻

2026世界杯全勤太难?这份保姆级攻略请收好

《死亡搁浅2》发售一周年了!口碑依旧封神

医生如何快速诊断脑梗和脑出血?

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版