首页 > 其他分享 >lc56.合并区间

lc56.合并区间

时间:2024-09-11 08:56:46浏览次数:14  
标签:int 合并 List start lc56 intervals 区间 表达式 lambda

语言:Python

关键思路:比较当前区间start和上一个不重叠区间end',如果start<=end',可以合并,新的end直接在上一个不重叠区间的end'和当前区间的end中取max

solution:

class Solution(object):
    def merge(self, intervals):
        """
        :type intervals: List[List[int]]
        :rtype: List[List[int]]
        """
        intervals.sort(key=lambda x:x[0])
        res=[]
        start=intervals[0][0]
        end=intervals[0][1]
        res.append(intervals[0])
        for i in range(len(intervals)):
            if intervals[i][0]<=res[len(res)-1][1]:# 如果新的start小于上一个区间的end-重合-合并
                res[len(res)-1][1]=max(intervals[i][1],res[len(res)-1][1]) # 最新的不重合区间的end为当前或之前较大的end
            else:
                res.append(intervals[i])
        return res

笔记:lambda表达式的用法+sort的自定义排序规则。

lambda函数的语法是:lambda arguments: expression。其中:

  • arguments:函数的参数,可以有零个、一个或多个参数,多个参数用逗号分隔。
  • expression:一个表达式,函数的返回值就是这个表达式的结果。

标签:int,合并,List,start,lc56,intervals,区间,表达式,lambda
From: https://blog.csdn.net/hwh531/article/details/142084285

相关文章

  • P5745【深基附B例】区间最大和
    思路一:枚举区间头尾i,j,然后对i和j里面所有数字累加起来求和,再判断是否在不大于M的情况下最大。#include<iostream>usingnamespacestd;inta[8000005];intmain(){ intn,M,ansm=0,ai,aj; cin>>n>>M; for(inti=1;i<=n;i++){ cin>>a[i]; } for......
  • 2181. 合并零之间的节点
    给你一个链表的头节点 head ,该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val==0 。对于每两个相邻的 0 ,请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。然后将所有 0 移除,修改后的链表不应该含有任何 0......
  • 2080. 区间内查询数字的频率
    题目链接2080.区间内查询数字的频率思路二分法(upper_bound-lower_bound)题解链接简洁写法:统计位置+二分查找(Python/Java/C++/Go/JS/Rust)关键点预先处理得到每个值所处位置的列表时间复杂度\(O(n+m\logn)\)空间复杂度\(O(n)\)代码实现:classR......
  • 石子合并
    **(区间DP)**0.思路关键点:最后一次合并一定是左边连续的一部分和右边连续的一部分进行合并如何分类:最后一次分界线的位置来分类,分成k类之后,每一类取最小代价步骤:1.枚举[l,r]区间的长度2.对于每个长度的区间枚举起点————合并开始的位置for(inti=1;i+len-1<=......
  • CNN-BiLSTMNTS-KDE多变量时序区间预测
     CNN-BiLSTMNTS-KDE多变量时序区间预测CNN-BiLSTMNTS-KDE多变量时序区间预测代码获取戳此处代码获取戳此处代码获取戳此处一、原理CNN-BiLSTMNTS-KDE模型结合了卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)、非参数时序建模(NTS)以及核密度估计(KDE)来进行多变量时序数据的......
  • Leetcode算法挑战:详解如何实现交替合并字符串的解题思路
    Leetcode算法挑战中的“交替合并字符串”问题,要求我们将两个字符串以交替的方式合并,终形成一个新的字符串。乍一看,这道题目似乎不复杂,但要写出高效且简洁的解法,还需要一定的思路和技巧。一、问题描述题目要求给定两个字符串word1和word2,将它们按照索引依次交替合并。如果某个......