当前位置: 首页 > news >正文

【代码随想录训练营】【Day 38】【贪心-5】| Leetcode 435, 763, 56

【代码随想录训练营】【Day 38】【贪心-5】| Leetcode 435, 763, 56

需强化知识点

  • 重叠区间系列 题, 763, 435

题目

435. 无重叠区间

  • 左起点排序,记录重叠区间个数,总数相减即为结果,过程中维护右边界
  • 注意:出现重叠区域时,右边界取最小值,即保留更靠左的区间,来使得后面区间更有可能不重合,从而移除次数最少
class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:intervals.sort(key = lambda x: x[0])times = 0sr = intervals[0][1]for i in range(1, len(intervals)):if intervals[i][0] >= sr:sr = intervals[i][1]else:times += 1sr = min(sr, intervals[i][1])return times

763. 划分字母区间

  • 思路:记录每个字母出现的最大位置,然后再次遍历,当遇到 i == 最大位置时,则可以切分一次
class Solution:def partitionLabels(self, s: str) -> List[int]:label_index = [-1] * 26result = []max_right = -1start_index = 0for i, c in enumerate(s):label_index[ord(c) - ord('a')] = max(label_index[ord(c) - ord('a')], i)for i , c in enumerate(s):max_right = max(max_right, label_index[ord(c) - ord('a')])if i == max_right:result.append(i - start_index + 1)start_index = i+1return result

56. 合并区间

  • 思路:遇到重叠进行合并,遇到不重叠,保存之前区间
class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:intervals.sort(key = lambda x: x[0])result = []sl, sr = intervals[0][0], intervals[0][1]for i in range(1, len(intervals)):if intervals[i][0] <= sr:sr = max(sr, intervals[i][1])else:result.append([sl, sr])sl, sr = intervals[i][0], intervals[i][1]result.append([sl, sr])return result

相关文章:

  • 算法金 | 再见,支持向量机 SVM!
  • 富格林:应用正规技巧阻挠被骗
  • 原生js访问http获取数据的方法
  • 数据在计算机内的表示和存储
  • 哈夫曼树的构造,哈夫曼树的存在意义--求哈夫曼编码
  • 【安卓跨进程通信IPC】-- Binder
  • 简易图像处理器的设计
  • ChatGLM3-6B部署
  • Python代码关系图生成,帮助快速熟悉一个项目
  • Vue.js的核心概念:如何理解Vue.js的声明式渲染、组件系统、Vue实例、Vue生命周期等核心概念。
  • 机器学习实战项目一(卡通化图像)
  • Linux命令篇(一):文件管理部分
  • 阿里云短信服务使用(Java)
  • C# 语言类型(二)—预定义类型之字符串及字符类型简述
  • 深入理解Java中的List集合:解析实例、优化技巧与最佳实践
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • ➹使用webpack配置多页面应用(MPA)
  • Android 架构优化~MVP 架构改造
  • css的样式优先级
  • EventListener原理
  • IIS 10 PHP CGI 设置 PHP_INI_SCAN_DIR
  • JavaScript函数式编程(一)
  • javascript数组去重/查找/插入/删除
  • LeetCode29.两数相除 JavaScript
  • SQLServer之创建显式事务
  • SQLServer之索引简介
  • Web设计流程优化:网页效果图设计新思路
  • XForms - 更强大的Form
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 浮动相关
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 机器学习学习笔记一
  • 基于阿里云移动推送的移动应用推送模式最佳实践
  • 什么是Javascript函数节流?
  • 数据科学 第 3 章 11 字符串处理
  • 提醒我喝水chrome插件开发指南
  • 小程序01:wepy框架整合iview webapp UI
  • 再谈express与koa的对比
  • ​​​​​​​Installing ROS on the Raspberry Pi
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • (1)(1.13) SiK无线电高级配置(六)
  • (ISPRS,2023)深度语义-视觉对齐用于zero-shot遥感图像场景分类
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (四)图像的%2线性拉伸
  • (一)80c52学习之旅-起始篇
  • (转)Android学习笔记 --- android任务栈和启动模式
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .equals()到底是什么意思?
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • ??myeclipse+tomcat
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • []AT 指令 收发短信和GPRS上网 SIM508/548