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

代码随想录算法训练营第31天—贪心算法05 | ● 435. 无重叠区间 ● *763.划分字母区间 ● *56. 合并区间

435. 无重叠区间

https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html

  • 考点
    • 贪心算法
    • 重叠区间
  • 我的思路
    • 先按照区间左坐标进行排序,方便后续处理
    • 进行for循环,循环范围是0到倒数第二个元素
    • 如果当前区间和下一区间重叠,结果计数加1,同时令下一区间的右坐标等于两个区间右坐标中的较小者,这里体现出了贪心的思路,因为取较小者即令区间尽可能小,也就降低了其与其它区间重叠的可能
    • 计数完毕后返回即可
  • 视频讲解关键点总结
    • 和我的思路类似
  • 我的思路的问题
  • 代码书写问题
  • 可执行代码
class Solution:def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int:intervals.sort(key=lambda x: x[0])result = 0for i in range(len(intervals) - 1):if intervals[i + 1][0] < intervals[i][1]:result += 1intervals[i + 1][1] = min(intervals[i][1], intervals[i + 1][1])return result

*763.划分字母区间

https://programmercarl.com/0763.%E5%88%92%E5%88%86%E5%AD%97%E6%AF%8D%E5%8C%BA%E9%97%B4.html

  • 考点
    • 本题不是贪心,但思路近似于重叠区间,因此放到这里
    • 如何记录字母最后出现的位置
    • 有了字母最后位置,如何让整个区间的字母均满足要求
  • 我的思路
    • 无思路
  • 视频讲解关键点总结
    • 本题两个关键点写在了考点里
    • 一,先遍历一遍字符串,记录每个字符出现的最后位置的索引
    • 二,在循环遍历字符串的过程中,用一个变量记录遍历过的字符所对应的索引最大值,当当前索引和最大值吻合时,记录一次结果
  • 我的思路的问题
    • 无思路
  • 代码书写问题
  • 可执行代码
class Solution:def partitionLabels(self, s: str) -> List[int]:last_position = [0] * 26for i in range(len(s)):last_position[ord(s[i]) - ord('a')] = iresult = []start_index = 0end_index = 0for i in range(len(s)):end_index = max(end_index, last_position[ord(s[i]) - ord('a')])if i == end_index:result.append(i - start_index + 1)start_index = end_index + 1end_index = 0return result

*56. 合并区间

https://programmercarl.com/0056.%E5%90%88%E5%B9%B6%E5%8C%BA%E9%97%B4.html

  • 考点
    • 贪心算法
    • 重叠区间
  • 我的思路
    • 如果区间有重叠,将区间合并,知道当前区间和下一区间不重叠,将当前区间加入结果
  • 视频讲解关键点总结
    • 先将第一个区间加入结果列表中
    • 之后判断原列表的当前区间与结果列表的最后一个区间是否重叠,如果重叠,更新结果列表的最后一个区间
    • 如果不重叠,直接把当前区间加入结果列表
  • 我的思路的问题
    • 会遗漏最后一个区间
  • 代码书写问题
  • 可执行代码
class Solution:def merge(self, intervals: List[List[int]]) -> List[List[int]]:intervals.sort(key=lambda x: x[0])result = [intervals[0]]for i in range(1, len(intervals)):if result[-1][1] >= intervals[i][0]:result[-1][0] = min(intervals[i][0], result[-1][0])result[-1][1] = max(intervals[i][1], result[-1][1])else:result.append(intervals[i])return result

相关文章:

代码随想录算法训练营第31天—贪心算法05 | ● 435. 无重叠区间 ● *763.划分字母区间 ● *56. 合并区间

435. 无重叠区间 https://programmercarl.com/0435.%E6%97%A0%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4.html 考点 贪心算法重叠区间 我的思路 先按照区间左坐标进行排序&#xff0c;方便后续处理进行for循环&#xff0c;循环范围是0到倒数第二个元素如果当前区间和下一区间重叠…...

2024《》

vue-cli到哪做了那些事 vue-cli是vue.js的脚手架&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;快速搭建Vue.js项目。 vue cli内置了webpack的一些功能&#xff0c;这些是用webpack打包时需要我们自己配置的&#xff0c;例如&#xff1a; 1.ES6代码转换成ES5代…...

【Web】Java反序列化之从CC3看TemplatesImpl的利用

目录 关于TemplatesImpl 关于TemplatesImpl加载字节码 CC3链分析 纯CC3demo 根据CC3改CC6 关于TemplatesImpl TemplatesImpl 是 Java 中的一个类&#xff0c;通常与 Java 反序列化漏洞相关的攻击中被使用。该类位于 Java 标准库中的 javax.xml.transform 包下。 在 Java…...

【Elasticsearch索引】Recovery恢复索引

文章目录 索引恢复恢复列表获取恢复信息响应详细信息正在进行的恢复响应解析高级设置 本地分片恢复事务日志 索引恢复 索引恢复提供了对正在进行的索引分片恢复的洞察。恢复状态可以针对特定的索引报告&#xff0c;也可以在集群范围内报告。 恢复列表 recovery命令是索引分片…...

如何在 Linux 中快速清空文件而不删除它们?

在Linux系统中&#xff0c;清空文件而不删除它们是一种常见的需求&#xff0c;特别是在需要保留文件结构或权限的情况下。本文将详细介绍如何在Linux环境中快速清空文件内容的多种方法&#xff0c;以及每种方法的优缺点。清空文件通常涉及到文件内容的擦除&#xff0c;但并不涉…...

SpringBoot 配置文件${variable:default}用法

${variable:default}用法&#xff0c;variable​是变量名&#xff0c;default​是默认值。如果配置文件中未指定该变量的值&#xff0c;则会使用默认值来替代。 解释代码&#xff1a; ip: ${NACOS_IP:nacos.ip} 该yaml函数是一个配置项&#xff0c;用来指定Nacos服务器的IP地…...

CUDA学习笔记02:测试程序hello world

参考资料 Win10下在VS2019中配置使用CUDA进行加速的C项目 &#xff08;配置.h文件&#xff0c;.dll以及.lib文件等&#xff09;_vs2019 cuda-CSDN博客 配置流程 1. 新建一个一般的项目 2. 项目建好后&#xff0c;在项目里添加.cu测试文件 测试的.cu文件命名为cuda_utils.cu&…...

2023年第十四届蓝桥杯大赛软件类省赛C/C++大学A组真题

2023年第十四届蓝桥杯大赛软件类省赛C/C大学A组部分真题和题解分享 文章目录 蓝桥杯2023年第十四届省赛真题-平方差思路题解 蓝桥杯2023年第十四届省赛真题-更小的数思路题解 蓝桥杯2023年第十四届省赛真题-颜色平衡树思路题解 蓝桥杯2023年第十四届省赛真题-买瓜思路题解 蓝桥…...

项目部署发布

目录 上传数据库 修改代码中的数据源配置 修改配置文件中的日志级别和日志目录 打包程序 ​编辑​编辑 上传程序 查看进程是否在运行 以及端口 云服务器开放端口(项目所需要的端口) 上传数据库 通过xshell控制服务器 创建目录 mkdir bit_forum 然后进入该目录 查看路…...

MATLAB环境下基于离散小波变换的心电信号伪影去除及PQRST波检测

可穿戴个人健康监护系统被广泛认为是下一代健康监护技术的核心解决方案。监护设备不断地感知、获取、分析和存储大量人体在日常活动中的生理数据&#xff0c;为人体的健康状况提供必要的、准确的、集成的和长期的评估和反馈。在心电监测领域&#xff0c;可穿戴传感器具有以下应…...

SwiftUI 在 App 中弹出全局消息横幅(下)

功能需求 在 SwiftUI 开发的 App 界面中,有时我们需要在全局层面向用户展示一些消息: 如上图所示:我们弹出的全局消息横幅位于所有视图之上,这意味这它不会被任何东西所遮挡;而且用户可以点击该横幅关闭它。这是怎么做到的呢? 在本篇博文中,您将学到以下内容 功能需求…...

2023年06月CCF-GESP编程能力等级认证Scratch图形化编程三级真题解析

本文收录于专栏《Scratch等级认证CCF-GESP真题解析》,专栏总目录・点这里 一、单选题(共15题,共30分) 第1题 高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。 A:编辑 B:保存 C:调试 D:编译 答案:D 第2题 小球角色,执行以下程序…...

升级openssl

openssl版本一键升级&#xff08;需要修改tar包名称和路径&#xff09; --- - name: Install OpenSSLhosts: openssltasks:- name: Copy OpenSSL tar.gz to /tmpcopy:src: /root/shl/soft/openssl-1.1.1v.tar.gzdest: /tmp # remote_src: yes # 如果源文件在控制主机上…...

软考基础知识2

1.DMA控制方式&#xff1a;直接内存存取。数据在内存与I/O设备间直接成块传送&#xff0c;不需要CPU的任何干涉&#xff0c;由DMA硬件直接执行完成。 例题&#xff1a; 2.程序计数器总是存下一个指令的地址。 例题&#xff1a; 3.可靠度的计算&#xff1a; 例题&#xff1a…...

Python基本数据类型介绍

Python 解释 Python是一种高级编程语言&#xff0c;以其简洁、易读和易用而闻名。它是一种通用的、解释型的编程语言&#xff0c;适用于广泛的应用领域&#xff0c;包括软件开发、数据分析、人工智能等。python是一种解释型&#xff0c;面向对象、动态数据类型的高级程序设计…...

边缘计算网关:连接物理世界与数字世界的桥梁-天拓四方

边缘计算网关是一种硬件设备&#xff0c;通常部署在网络边缘&#xff0c;即物联网设备的接入点。它具备数据采集、处理、存储和传输等功能&#xff0c;能够实现对物联网设备的实时监控和控制。边缘计算网关将原本需要在云端处理的数据在本地进行计算和分析&#xff0c;从而降低…...

NTP网络校时服务器(GPS北斗卫星校时系统)应用场景

NTP网络校时服务器&#xff08;GPS北斗卫星校时系统&#xff09;应用场景 NTP网络校时服务器&#xff08;GPS北斗卫星校时系统&#xff09;应用场景 随着大数据、云计算时代的到来,各行业信息化建设的不断提升,信息化下的各个系统不再单独处理各自业务,而是趋于协同工作,因此,各…...

Intel 芯片 Mac 如何重新安装系统

使用可引导安装器重新安装&#xff08;可用于安装非最新的 Mac OS&#xff0c;系统降级&#xff0c;需要清除所有数据&#xff0c;过程确保连接上网络&#xff0c;虽然这种方式不会下载 Mac OS&#xff0c;但是需要下载固件等信息&#xff09; 插入制作好的可引导安装器&#x…...

【uni-app】condition 启动模式配置,生产环境无效,仅开发期间生效

在小程序开发过程中&#xff0c;每次代码修改后&#xff0c;都会启动到首页&#xff0c;有时非常不方便&#xff0c;为了更高效的开发&#xff0c;有时需要模拟直接跳转到指定的页面&#xff0c; 操作方法如下&#xff1a; 在pages.joson里面配置下列代码&#xff1a; "…...

sql单表运用11.3

一、进入数据库操作界面 1、mysql -u root -p 敲回车 &#xff0c;输入密码 &#xff0c;进入数据库操作界面 2、show databases 查看所有的数据&#xff08;如果没有数据库&#xff1a;创建数据库 create database 库名称&#xff09; 3、use 数据库名 使…...

圣女司幼幽-造相Z-Turbo进阶用法:用Python脚本批量生成角色图教程

圣女司幼幽-造相Z-Turbo进阶用法&#xff1a;用Python脚本批量生成角色图教程 1. 从手动点击到自动生成&#xff1a;为什么需要脚本批量处理&#xff1f; 如果你已经体验过圣女司幼幽-造相Z-Turbo的Web界面&#xff0c;手动输入提示词、点击生成按钮&#xff0c;看着一张张精…...

SQLite Developer实战:如何高效管理Android开发中的.db文件(含数据导入导出技巧)

SQLite Developer实战&#xff1a;高效管理Android开发中的.db文件 在移动应用开发领域&#xff0c;数据存储始终是核心需求之一。对于Android开发者而言&#xff0c;SQLite作为轻量级的关系型数据库&#xff0c;因其零配置、无服务器特性而成为本地存储的首选方案。然而&…...

Windows Defender Remover:系统优化工具与安全组件管理指南

Windows Defender Remover&#xff1a;系统优化工具与安全组件管理指南 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirror…...

从成本到实践:基于uniCloud与七牛云扩展存储的uniapp项目降本增效全攻略

1. 为什么选择uniCloud扩展存储&#xff1f;省钱的底层逻辑 做uniapp项目最头疼的就是用户上传的图片、视频这些文件怎么存。去年我接手一个社区类小程序&#xff0c;用户每天上传的图片超过5万张&#xff0c;用传统云存储一个月光流量费就烧掉8000多块。后来换成uniCloud七牛…...

实战应用:基于快马开发应对复杂依赖的openclaw深度卸载解决方案

今天在项目迁移过程中遇到了一个棘手问题&#xff1a;需要安全卸载遗留的openclaw组件。这个工具深度集成在系统里&#xff0c;直接删除会导致各种依赖问题。经过反复尝试&#xff0c;终于在InsCode(快马)平台上找到了高效的解决方案&#xff0c;记录下实战经验供参考。 依赖分…...

从GitLab迁移到轻量级Gogs:用Docker在个人服务器上搭建私有Git仓库全记录

从GitLab迁移到轻量级Gogs&#xff1a;用Docker在个人服务器上搭建私有Git仓库全记录 三年前我的团队还在使用GitLab CE管理代码&#xff0c;直到某天服务器监控突然报警——16GB内存被吃掉了92%。打开容器监控一看&#xff0c;GitLab容器独自占用了8GB内存&#xff0c;而我们…...

SPI闪存性能优化实战:用STM32F1的DMA+NM25Q128实现高速数据记录

SPI闪存性能优化实战&#xff1a;用STM32F1的DMANM25Q128实现高速数据记录 在物联网设备数据采集场景中&#xff0c;嵌入式存储性能往往成为系统瓶颈。传统轮询方式操作SPI闪存时&#xff0c;CPU需要全程参与数据传输&#xff0c;导致吞吐量低下且系统资源占用率高。本文将深入…...

Vue-Touch实战案例:构建支持多点触控的图片查看器

Vue-Touch实战案例&#xff1a;构建支持多点触控的图片查看器 【免费下载链接】vue-touch Hammer.js wrapper for Vue.js 项目地址: https://gitcode.com/gh_mirrors/vu/vue-touch 想要为你的Vue.js应用添加流畅的多点触控交互体验吗&#xff1f;Vue-Touch插件正是你需要…...

XGP-save-extractor:跨平台开源工具守护游戏存档数据安全

XGP-save-extractor&#xff1a;跨平台开源工具守护游戏存档数据安全 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor 在游戏世界中&…...

25kW高压直流电源模块DCDC控制软件分析

系统概述 本文分析的代码是一个用于25kW高压直流电源模块的DCDC控制软件系统&#xff0c;基于TI DSP2803x平台开发。该系统采用三相Vienna PFC和串联全桥LLC拓扑结构&#xff0c;实现高效的大功率直流转换功能。 系统架构与核心功能 1. 系统控制架构 该DCDC控制系统采用分层设计…...