代码随想录算法训练营第35天 |435.无重叠区间、763.划分字母区间、56.合并区间

代码随想录算法训练营第35天 |435.无重叠区间、763.划分字母区间、56.合并区间

  • 自己看到题目的第一想法
  • 看完代码随想录之后的想法
  • 自己实现过程中遇到哪些困难

链接: 435.无重叠区间
链接: 763.划分字母区间
链接: 56.合并区间

自己看到题目的第一想法

435.无重叠区间:先对数组的左边界进行排序,排序之后比较右边界,循环过程中,如果当前数组的右边界比下一个数组的左边界大,则计数加1,否则就更新右边界,右边界是当前最短的右边界。但是我不会根据当前数组左边界进行排序。。。
763.划分字母区间:直接把单独一个字符当作一个子字符串不就是最多的片段划分吗?啊嘞?
56.合并区间:这道题看起来不难,左边界排序后遍历比较右边界,如果判断到了重叠就进行数组合并,本质上是更新边界。但是不知道怎么写合并。

看完代码随想录之后的想法

435.重叠区间 : 看完发现和自己的思路一样。
根据左边界进行从小到大的排序:

 Arrays.sort(intervals, (a,b)-> {return Integer.compare(a[0],b[0]);});

763.划分字母区间:看完题解发现自己没有读懂题目意思,同一字母最多出现在一个片段中的意思是这个字母已经在这个片段中了,那么这个字母就不能再出现在其他片段中,并不是我理解的同一个片段只能出现一次同一字符。另一个难点就是怎样模拟过程。方法是记录每个字母出现的最远位置,用27个大小的hash数组,用i对数组进行遍历,key是数组i位置的ascii码值-‘a’,value是i,那么在循环的过程中就能不断更新不同字母对应的位置,等遍历完成之后,该key对应的字母的ascii码值对应的最远距离就得到了。再次遍历确定分割线,当遍历的下标等于最远出现的位置的时候,结果记录一下并更新左边界。
56.合并区间:其实就是用合并区间后左边界和右边界,作为一个新的区间,加入到result数组里就可以了。如果没有合并就把原区间加入到result数组。同时更新比较的时候用的是最大右边界,而不是上一个数组的边界。

自己实现过程中遇到哪些困难

1.首先,对于区间问题我觉得思路基本掌握。
2.令我印象深刻的是,哈希数组存储字符最远距离的方法。
3.很多时候难点在于模拟,如何将思维用代码模拟出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/847123.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

装机必备——鲁大师安装教程

装机必备——鲁大师安装教程 软件下载 软件名称:鲁大师 软件语言:简体中文 软件大小:144.75M系统要求:Windows7或更高, 32/64位操作系统 硬件要求:CPU2GHz ,RAM2G或更高 下载通道①迅雷云盘丨…

p5开发helloworld

注意,执行的时候,后面不用带class的后缀

C语言(字符、字符串函数)2

Hi~!这里是奋斗的小羊,很荣幸各位能阅读我的文章,诚请评论指点,欢迎欢迎~~ 💥个人主页:小羊在奋斗 💥所属专栏:C语言 本系列文章为个人学习笔记,在这里撰写成文一…

Pinia(三): 了解和使用state

1.state state 就是我们要定义的数据, 如果定义 store 时传入的第二个参数是对象, 那么 state 需要是一个函数, 这个函数的返回值才是状态的初始值.这样设计的原因是为了让 Pinia 在客户端和服务端都可以工作 官方推荐使用箭头函数(()>{ })获得更好的类型推断 import { de…

最新张量补全论文收集【8篇】

目录 1、利用张量子空间先验:增强张量补全的核范数最小化和 2、基于可学习空间光谱变换的张量核范数多维视觉数据恢复 3、用于图像补全的增强型低秩和稀疏 Tucker 分解 4、多模态核心张量分解及其在低秩张量补全中的应用 5、 低秩张量环的噪声张量补全 6、 视…

三十四、openlayers官网示例Dynamic clusters解析——动态的聚合图层

官网demo地址: https://openlayers.org/en/latest/examples/clusters-dynamic.html 这篇绘制了多个聚合图层。 先初始化地图 ,设置了地图视角的边界extent,限制了地图缩放的范围 initMap() {const raster new TileLayer({source: new XYZ…

JAVA流程控制break,continue,goto

1.break在任何循环语句的主体成分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用) 如图:break语句强行退出循环,结果输出1~30便结束&#xf…

两数之和-第13届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第76讲。 两数之和&#xf…

结构体(1)

结构体: 记录班级的学生的信息: 姓名 数组 char name[30][100]; // 性别 char sex[30]; // 0 1 年龄 int age[30]; 学号 int sno[30]; 打印 小明 同学 信息 c语言 --- 提供了一种方式,可以让用户自定义数据类型 : 构造一个数据类型 …

Java面试八股之死锁和活锁的区别

死锁和活锁的区别 基本定义: 死锁(Deadlock):指两个或多个线程互相等待对方释放资源,从而导致所有线程都无法继续执行的状态。每个线程至少持有一个资源,并等待另一个由其他线程持有的资源,形…

初始操作系统

概念: 1.系统资源的管理者:实质控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机地工作和资源的分配 2.向上层提供方便易用的服务:以提供给用户和其他软件方便接口和环境 封装思想:操作系统把一些丑…

Oracle数据库面试题-2

21. 请解释Oracle数据库中的自动存储管理(ASM)的概念。 Oracle数据库中的自动存储管理(ASM) 自动存储管理(ASM)是一种Oracle数据库的存储管理解决方案,它使得数据库管理员能够集中管理多个物理磁盘驱动器,提供了一系列高级功能,如磁盘组、冗余和备份等。ASM简化了存…

阿里云服务器接入百度云防护后显示502原因

最近,发现很多使用了阿里云服务器的网站出现502的情况 经百度云防护技术排查发现阿里云机房对百度云防护的IP进行了拦截,原因近期可能是百度云防护的IP请求过于频繁,导致阿里云机房策略把百度云的IP当成了攻击IP。 解决办法是提交工单让阿里…

第三方模块的下载与安装

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在进行Python程序开发时,除了可以使用Python内置的标准模块外,还有很多第三方模块可以被我们所使用。对于这些第三方模块&…

python过滤数组中的空字符串

20240603 - 解决方案 对于一个字符串数组,想要过滤其中的空字符串的时候。 问答一中提供了几种方案: str_list filter(None, str_list) str_list filter(bool, str_list) str_list filter(len, str_list) str_list filter(lambda item: item, st…

关于AI数字人的几个创作平台及其使用(二)

文章目录 二、创作平台二1、基本信息2、使用方法1、进入创作页面2、开始创作2.1、脚本创作2.1.1、使用文本软件创作2.1.2、AI创作脚本2.2、选择模板2.2.1、选择模板2.2.2、字幕与配音2.3、细节调整2.3.1、数字人2.3.2、音乐2.3.3、背景2.3.4、文字2.3.5、贴图2.3.6、智能配图或…

5.31——进军MYSQL

目录 简略版: 详解版: 一. myaql概述: 数据库: 数据库管理系统: SQL: 二. masql的安装: 启动与停止: 1. MYSQL提供的命令行 2. windows提供的命令行工具 三.数据模型 …

在一个定义好的数据对象(class)中,后续更新时只更新其中部分数据,其余部分会恢复初始设置吗

在一个定义好的数据对象(class)中,后续更新时只更新其中部分数据,其余部分会恢复初始设置吗 在一个定义好的数据对象(class)中,如果你只更新其中部分数据,其余部分的值不会恢复到初始…

Claude 3可使用第三方API,实现业务流程自动化

5月31日,著名大模型平台Anthropic宣布,Claude3模型可以使用第三方API和工具。 这也就是说,用户通过文本提问的方式就能让Claude自动执行多种任务,例如,从发票中自动提取姓名、日期、金额等,该功能对于开发…