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

435. 无重叠区间

已解答
中等
相关标签
相关企业
给定一个区间的集合 intervals ,其中 intervals[i] = [start(i), end(i)] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。

示例 1:
输入: intervals = [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除 [1,3] 后,剩下的区间没有重叠。
示例 2:
输入: intervals = [ [1,2], [1,2], [1,2] ]输出: 2解释: 你需要移除两个 [1,2] 来使剩下的区间没有重叠。
示例 3:
输入: intervals = [ [1,2], [2,3] ]输出: 0解释: 你不需要移除任何区间,因为它们已经是无重叠的了。

提示:

  • 1 <= intervals.length <= 10(5)
  • intervals[i].length == 2
  • -5 * 10(4) <= start(i) < end(i) <= 5 * 10(4)

代码

package __greedyimport "sort"func eraseOverlapIntervals(intervals [][]int) int {n := len(intervals)cnt := 0sort.Slice(intervals, func(i, j int) bool {if intervals[i][0] == intervals[j][0] {return intervals[i][1] < intervals[j][1]}return intervals[i][0] < intervals[j][0]})for i := 1; i < n; i++ {if intervals[i][0] < intervals[i-1][1] {//有重叠cnt++if intervals[i][1] > intervals[i-1][1] {//更新到最小区间intervals[i][1] = intervals[i-1][1]}}}return cnt
}
func max(i, j int) int {if i > j {return i}return j
}

763. 划分字母区间

已解答
中等
相关标签
相关企业
提示
给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。
注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。
返回一个表示每个字符串片段的长度的列表。

示例 1:
输入:s = "ababcbacadefegdehijhklij"输出:[9,7,8]解释:
划分结果为 “ababcbaca”、“defegde”、“hijhklij” 。
每个字母最多出现在一个片段中。
像 “ababcbacadefegde”, “hijhklij” 这样的划分是错误的,因为划分的片段数较少。
示例 2:
输入:s = "eccbbbbdec"输出:[10]

提示:

  • 1 <= s.length <= 500
  • s 仅由小写英文字母组成

代码

func partitionLabels(s string) []int {//找到每个字母的区间partition := make([][]int, 0)n := len(s)for i := 0; i < n; i++ {max_pos := 0for j := i + 1; j < n; j++ {if s[i] == s[j] {max_pos = j}}partition = append(partition, []int{i, max(max_pos, i)})}res := make([]int, 0)n = len(partition)for i := 1; i < n; i++ {if partition[i][0] <= partition[i-1][1] {//重叠partition[i][0] = partition[i-1][0]partition[i][1] = max(partition[i][1], partition[i-1][1])} else {//不重叠,记录res = append(res, partition[i-1][1]-partition[i-1][0]+1)}}res = append(res, partition[n-1][1]-partition[n-1][0]+1)return res
}

56. 合并区间

已解答
中等
相关标签
相关企业
以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [start(i), end(i)] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。

示例 1:
输入:intervals = [[1,3],[2,6],[8,10],[15,18]]输出:[[1,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].
示例 2:
输入:intervals = [[1,4],[4,5]]输出:[[1,5]]解释:区间 [1,4] 和 [4,5] 可被视为重叠区间。

提示:

  • 1 <= intervals.length <= 10(4)
  • intervals[i].length == 2
  • 0 <= start(i) <= end(i) <= 10(4)

代码

func merge(intervals [][]int) [][]int {sort.Slice(intervals, func(i, j int) bool {if intervals[i][0]==intervals[j][0]{return intervals[i][1]<intervals[j][1]}return intervals[i][0]<intervals[j][0]})n := len(intervals)res := make([][]int, 0)for i := 1; i < n; i++ {if intervals[i][0] <= intervals[i-1][1] {//重叠-》合并intervals[i][0] = intervals[i-1][0]intervals[i][1] = max(intervals[i-1][1], intervals[i][1])} else {//不重叠,记录res = append(res, intervals[i-1])}}res = append(res, intervals[n-1])return res
}

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

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

相关文章

Wireshark抓包实验

实验目的&#xff1a; 通过实验掌握下列知识&#xff1a; 掌握Wireshark抓包工具的使用。掌握建立telnet用户密码登录方式&#xff0c;并通过wireshark抓取相关信息。理解TCP的包结构&#xff0c;并掌握TCP建立连接的过程。掌握使用tftp工具&#xff0c;上传、下载文件操作及t…

Python实现多种图像去噪方法

Python实现多种图像去噪方法&#xff1a;中值滤波&#xff0c;均值滤波&#xff0c;高通滤波&#xff0c;低通滤波&#xff0c;高斯滤波&#xff0c;同态滤波 图像和视频逐渐成为人们生活中信息获取的重要来源。人们准确地获取信源发出的图像和视频信息需要保证在传输过程中的…

​ctypes --- Python 的外部函数库​

源代码: Lib/ctypes ctypes 是 Python 的外部函数库。它提供了与 C 兼容的数据类型&#xff0c;并允许调用 DLL 或共享库中的函数。可使用该模块以纯 Python 形式对这些库进行封装。 ctypes 教程 注&#xff1a;本教程中的示例代码使用 doctest 来保证它们能正确运行。 由于有…

文本每行数据乘以0.8

文本中数据计算 1.读取input.txt文本中每行数字 2.每行数字乘以0.8&#xff0c;输出到out.txt文件中 package mainimport ("bufio""fmt""log""os""strconv" )func main() {// 打开输入文件inputFile, err : os.Open(&quo…

Ganache结合内网穿透实现远程或不同局域网进行连接访问

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络&#xff0c;提供图形化界面&#xff0c;log日志等&#xff1b;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…

解决nuxt3报错:The requested module xxx does not provide an export named ‘PropType‘

现象如下&#xff1a; 从表象上就是typescript找不到PropType的类型声明 原因&#xff1a;这是vue3已知的type类型导入时存在的一个问题&#xff0c;而且一直没有得到解决 No matching export for import typescript interface Issue #2117 vitejs/vite GitHub 代码里面导…

解决接入mPaas一直Starting Gradle Daemon...问题

1、新版开发工具 如若使用的是新版开发工具则在settings.gradle中加入 // gradlePluginPortal() // google()maven { url https://maven.aliyun.com/repository/google }maven { url https://maven.aliyun.com/repository/gradle-plugin }maven { url https://…

Heap Sort Algorithm

A heap is a specialized tree-based data structure that satisfies the heap property. It’s commonly implemented as a binary tree, particularly an array-based representation, where the parent node’s value is either greater than or less than (depending on wh…

IncDec序列

title: IncDec序列 date: 2023-12-14 21:10:36 tags: 差分 categories: 算法进阶指南 —>传送门 题目大意 解题思路 区间操作&#xff0c;可以考虑差分。观察发现&#xff0c;最终变成相同的数&#xff0c;相当于相邻的两个数之差为 0 0 0&#xff0c;因此我们使用差分。先…

快乐数(力扣

bool isHappy(int n) {int num10,temp;while(num--){temp0;while(n){temppow(n%10,2);n/10;}ntemp;if(n1) return true;}return false; }

35、卷积算法总结

前面大概花了 10 几节的篇幅,介绍了卷积这一算法,我觉得是值得的。 因为在CNN网络中,卷积是属于绝对的核心,而且围绕着卷积可衍生出来的算法还有很多,并且卷积的算法思想在很多其他算法中都有体现,比如矩阵乘法、全连接算法。这一节来总结一下这个算法。 卷积算法的参数…

hash累计上文

import hashlib def gen_hash(text):# 创建一个SHA256哈希对象hash_object hashlib.sha256()# 更新哈希对象hash_object.update(text.encode())# 获取哈希值&#xff08;十六进制字符串&#xff09;hex_dig hash_object.hexdigest()return hex_dig# 要计算哈希值的文本 data …

【开题报告】基于SpringBoot的办公消耗品管理系统的设计与实现

1.研究背景 办公消耗品管理系统的设计与实现&#xff0c;是针对当前企业、公司等办公场所对于各种消耗品进行高效管理的需求而提出的。随着企业规模的扩大和办公自动化程度的提高&#xff0c;传统的手工管理已经无法满足日益增长的管理需求。因此&#xff0c;基于SpringBoot的…

.[henderson@cock.li].Devos、[myers@airmail.cc].Devos勒索病毒的最新威胁:如何恢复您的数据?

尊敬的读者&#xff1a; .[hendersoncock.li].Devos、[myersairmail.cc].Devos 勒索病毒的威胁无处不在。通过深入了解其特征、有效的数据恢复方法以及全面的预防措施&#xff0c;我们可以更好地保护自己、家人和企业的数字财产。在网络的战场上&#xff0c;谨慎和预防是我们最…

c语言快速排序(霍尔法、挖坑法、双指针法)图文详解

快速排序介绍&#xff1a; 快速排序是一种非常常用的排序方法&#xff0c;它在1962由C. A. R. Hoare&#xff08;霍尔&#xff09;提的一种二叉树结构的交换排序方法&#xff0c;故因此它又被称为霍尔划分&#xff0c;它基于分治的思想&#xff0c;所以整体思路是递归进行的。 …

vite 中使用插件 vite-plugin-svg-icon加载svg资源

1.安装 pnpm i vite-plugin-svg-icons -D2.配置 vite 在vite.config.ts 中配置 import { createSvgIconsPlugin } from vite-plugin-svg-icons; import path from path;function configSvgIconsPlugin(isBuild: boolean) {const svgIconsPlugin createSvgIconsPlugin({// 要…

不会设计Logo,不如来看看这9个Logo设计软件!

优秀的 Logo 是企业的形象展示。大公司将花费数万甚至数百万定制特色标志。由于预算有限&#xff0c;一些中小企业或企业家往往希望找到更具成本效益的渠道。这里有 9 个免费的 Logo 设计软件。用户可以通过输入品牌名称来生成自己的 Logo。 1、即时设计 即时设计是一个国内的…

Tomcat部署(图片和HTML等)静态资源时遇到的问题

文章目录 Tomcat部署静态资源问题图中HTML代码启动Tomcat后先确认Tomcat是否启动成功 Tomcat部署静态资源问题 今天&#xff0c;有人突然跟我提到&#xff0c;使用nginx部署静态资源&#xff0c;如图片。可以直接通过url地址访问&#xff0c;为什么他的Tomcat不能通过这样的方…

leetcode 904. 水果成篮(优质解法)

代码&#xff1a; class Solution {public int totalFruit(int[] fruits) {int lengthfruits.length;int []fruitNumsnew int[length1]; //用于记录各个种类摘了多少个水果int count0; //用于记录当前采摘了几种水果int sum0; //用于记录当前共摘了多少水果for(int left0…

Peter算法小课堂—简单建模(2)

太戈编程736题 题目描述&#xff1a; 你是一只汪星人&#xff0c;地球毁灭后你回到了汪星&#xff0c;这里每天有n个小时&#xff0c;你需要为自己选择正好连续的m小时作为每天睡眠的时间。从凌晨开始&#xff0c;第i小时内的睡眠质量为xi&#xff0c;请问经过选择后&#xf…