网站建设开票,安徽省,新乡网络公司首选,为什么做网站需要服务器读研了#xff0c;开始用python刷题
今天的题目是力扣 每日一题 57. 插入区间 难度#xff1a;中等 思路#xff1a;
处理新区间起点#xff0c;要么在两个老区间之间#xff0c;要么被一个老区间包含处理新区间中点#xff0c;同起点一样
我的代码如下
class Solut…读研了开始用python刷题
今天的题目是力扣 每日一题 57. 插入区间 难度中等 思路
处理新区间起点要么在两个老区间之间要么被一个老区间包含处理新区间中点同起点一样
我的代码如下
class Solution:def insert(self, intervals: List[List[int]], newInterval: List[int]) - List[List[int]]:result []t 0if len(intervals) 0:return [newInterval]for interval in intervals:if t 2:result.append(interval)if t 0:if interval[1] newInterval[0]:result.append(interval)if interval[0] newInterval[0] and interval[1] newInterval[0]:result.append([interval[0], 0])t 1if interval[0] newInterval[0]:result.append([newInterval[0], 0])t 1if t 1:if interval[1] newInterval[1]:result[len(result) - 1][1] newInterval[1]continueif interval[0] newInterval[1]:result[len(result) - 1][1] newInterval[1]result.append(interval)t 2if interval[0] newInterval[1]:result[len(result) - 1][1] interval[1]t 2if t 0:result.append(newInterval)return result 很长属于想到什么写什么总体遍历 intervals 数组每一阶段的处理逻辑不同使用不同的 t 来区分总时间40mm下面是24mm的答案且代码更简洁
以左边界为度量将新区间插入 intervals 中大鱼吃小鱼的思想只有当前一个区间“吃”不到后一个区间时才将该区间加入 result 中否则“吃”掉它增加该区间的有边界
class Solution:def insert(self, intervals: List[List[int]], newInterval: List[int]) - List[List[int]]:intervals.append(newInterval)intervals.sort(keylambda x:x[0])res []pre_s, pre_e intervals[0][0], intervals[0][1]for s, e in intervals[1:]:if s pre_e and e pre_e:pre_e eelif s pre_e:res.append([pre_s, pre_e])pre_s, pre_e s, eres.append([pre_s, pre_e])return res