做名片的网站叫什么来着,南宁模板网页制作,套模板网站价格,wordpress评论通知文章作者【力扣】56. 合并区间 文章目录 【力扣】56. 合并区间1. 题目介绍2. 解法2.1 方法一#xff1a;标志位2.2 方法二#xff1a;排序 遍历 3. Danger参考 1. 题目介绍
以数组 intervals 表示若干个区间的集合#xff0c;其中单个区间为 intervals[i] [starti, endi] 。请你合…【力扣】56. 合并区间 文章目录 【力扣】56. 合并区间1. 题目介绍2. 解法2.1 方法一标志位2.2 方法二排序 遍历 3. Danger参考 1. 题目介绍
以数组 intervals 表示若干个区间的集合其中单个区间为 intervals[i] [starti, endi] 。请你合并所有重叠的区间并返回 一个不重叠的区间数组该数组需恰好覆盖输入中的所有区间 。 2. 解法
2.1 方法一标志位
由于数字的范围是小的因此可以通过设置标志位遍历数组将对应的区间置为0
至于这里为什么要乘2 是因为存在[1,4],[5,6]这种情况 因此需要隔断的数字。 最终遍历整个标志位数组得到最终的区间答案。
class Solution:def merge(self, intervals: List[List[int]]) - List[List[int]]:n len(intervals)lst [0] * 20002for i in range(n):tmp intervals[i]for j in range(2*tmp[0], 2*tmp[1]1):lst[j] 1res []i 0while i 20002:if lst[i] 1:tmp [0] * 2tmp[0] int(i/2)while lst[i]1:i 1i - 1tmp[1] int(i/2)res.append(tmp)i 1return res2.2 方法二排序 遍历
# class Solution:
# def merge(self, intervals: List[List[int]]) - List[List[int]]:
# intervals.sort(keylambda x: x[0])# merged []
# for interval in intervals:
# # 如果列表为空或者当前区间与上一区间不重合直接添加
# if not merged or merged[-1][1] interval[0]:
# merged.append(interval)
# else:
# # 否则的话我们就可以与上一区间进行合并
# merged[-1][1] max(merged[-1][1], interval[1])# return merged
3. Danger
力扣LeetCode是领扣网络旗下专注于程序员技术成长和企业技术人才服务的品牌。源自美国硅谷力扣为全球程序员提供了专业的IT技术职业化提升平台有效帮助程序员实现快速进步和长期成长。此外力扣LeetCode致力于解决程序员技术评估、培训、职业匹配的痛点逐步引领互联网技术求职和招聘迈向专业化。
据了解到的情况Easy题和Medium 题在面试中比较常见通常会以手写代码之类的形式出现您需要对问题进行分析并给出解答并于面试官进行交流沟通有时还会被要求分析时间复杂度8与空间复杂度°面试官会通过您对题目的分析解答了解您对常用算法的熟悉程度和您的程序实现功底。而在一些对算法和程序实现功底要求较高的岗位Hard 题也是很受到面试官的青睐如果您在面试中成功Bug-Free出一道Hard题我们相信您一定会给面试官留下很深刻的印象并极大增加拿到Offer的概率据相关人士统计如果您在面试成功解出一道Hard题拿不到Offer的概率无限接近于0。所以,力扣中Easy和Medium相当于面试中的常规题而Hard 则相当于面试中较难的题解出—道Hard题Offer可以说是囊中之物。
参考
【1】https://leetcode.cn/problems/merge-intervals/