LEETCODE-DAY36


title: LEETCODE-DAY36

date: 2024-03-27 18:49:59
tags:

今日内容:435. 无重叠区间、763.划分字母区间、56. 合并区间

T1

思路类似DAY35 T3

python 复制代码
class Solution:
    def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:
        intervals.sort()
        j=0
        for i in range(len(intervals)):
            if i>0 and intervals[i][0]<intervals[i-1][1]:
                #因为要使j尽可能小,故把较大的上界对应的区间remove
                intervals[i][1]=min(intervals[i][1],intervals[i-1][1])
                j+=1
        return j

AC

T2

python 复制代码
class Solution:
    def partitionLabels(self, s: str) -> List[int]:
        last_occurrence = {}  # 存储每个字符最后出现的位置
        for i, ch in enumerate(s):
            last_occurrence[ch] = i

        result = []
        start = 0
        end = 0
        for i, ch in enumerate(s):
            end = max(end, last_occurrence[ch])  # 找到当前字符出现的最远位置
            if i == end:  # 如果当前位置是最远位置,表示可以分割出一个区间
                result.append(end - start + 1)
                start = i + 1

        return result
python 复制代码
python 复制代码
python 复制代码

T3

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
            res=list()
            intervals.sort()
            for i in range(len(intervals)):
                if i>0 and intervals[i][0]<=intervals[i-1][1]:
                    intervals[i][0]=intervals[i-1][0]
                    intervals[i][1]=max(intervals[i][1],intervals[i-1][1])
                elif i>0 and intervals[i][0]>intervals[i-1][1]:
                    res.append(intervals[i-1])

            return res

输入

intervals =

\[1,3\],\[2,6\],\[8,10\],\[15,18\]

输出

\[1,6\],\[8,10\]

预期结果

\[1,6\],\[8,10\],\[15,18\]

输入

intervals =

\[1,4\],\[4,5\]

输出

预期结果

\[1,5\]

python 复制代码
class Solution:
    def merge(self, intervals: List[List[int]]) -> List[List[int]]:
            res=list()
            intervals.sort()
            for i in range(len(intervals)):
                if i>0 and intervals[i][0]<=intervals[i-1][1]:
                    intervals[i][0]=intervals[i-1][0]
                    intervals[i][1]=max(intervals[i][1],intervals[i-1][1])
                elif i>0 and intervals[i][0]>intervals[i-1][1]:
                    res.append(intervals[i-1])
            res.append(intervals[i])

            return res

AC

相关推荐
Gorway3 小时前
解析残差网络 (ResNet)
算法
拖拉斯旋风3 小时前
LeetCode 经典算法题解析:优先队列与广度优先搜索的巧妙应用
算法
Wect3 小时前
LeetCode 207. 课程表:两种解法(BFS+DFS)详细解析
前端·算法·typescript
灵感__idea17 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect1 天前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP2 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱2 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉