代码随想录第三十一天(一刷C语言)|无重叠区间划分字母区间合并区间

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。

一、无重叠区间

思路:参考carl文档

        按照右边界排序,从左向右记录非交叉区间的个数。最后用区间总数减去非交叉区间的个数就是需要移除的区间个数了。

ledcode题目:https://leetcode.cn/problems/non-overlapping-intervals/description/

AC代码:

int cmp(int** a, int** b) {return (*a)[1] - (*b)[1];
}int eraseOverlapIntervals(int** intervals, int intervalsSize, int* intervalsColSize) {if (intervalsSize == 0) {return 0;}qsort(intervals, intervalsSize, sizeof(int*), cmp);int right = intervals[0][1];int ans = 1;for (int i = 1; i < intervalsSize; ++i) {if (intervals[i][0] >= right) {++ans;right = intervals[i][1];}}return intervalsSize - ans;
}

二、划分字母区间

思路:参考carl文档

        统计每一个字符最后出现的位置,从头遍历字符,并更新字符的最远出现下标。如果找到字符最远出现位置下标和当前下标相等了,则找到了分割点

lecode题目:https://leetcode.cn/problems/partition-labels/description/

AC代码:

int* partitionLabels(char* s, int* returnSize) {int last[26];int length = strlen(s);for (int i = 0; i < length; i++) {last[s[i] - 'a'] = i;}int* partition = (int*)malloc(sizeof(int) * length);int start = 0, end = 0;*returnSize = 0;for (int i = 0; i < length; i++) {end = fmax(end, last[s[i] - 'a']);if (i == end) {partition[(*returnSize)++] = end - start + 1;start = end + 1;}}return partition;
}

三、合并区间

思路:参考carl文档

        按照左边界从小到大排序之后,如果 intervals[i][0] <= intervals[i - 1][1] 即intervals[i]的左边界 <= intervals[i - 1]的右边界,则一定有重叠。合并区间后左边界和右边界,作为一个新的区间,加入到result数组里。如果没有合并就把原区间加入到result数组。

ledcode题目:https://leetcode.cn/problems/merge-intervals/description/

AC代码:

int cmp(const void* a, const void* b){return (*(int**)a)[0] > (*(int**)b)[0] ? 1 : -1;
}
int** merge(int** intervals, int intervalsSize, int* intervalsColSize, int* returnSize, int** returnColumnSizes){if (intervals == NULL || intervalsSize == 0) {return NULL;}qsort(intervals, intervalsSize, sizeof(int*), cmp);int right = intervals[0][1];int** res = (int**)calloc(intervalsSize, sizeof(int*));* returnColumnSizes = (int*)calloc(intervalsSize, sizeof(int));for (int i = 0; i < intervalsSize; i++) {res[i] = (int*)calloc(2, sizeof(int));(* returnColumnSizes)[i] = 2;}*returnSize = 0;res[*returnSize][0] = intervals[0][0];res[*returnSize][1] = intervals[0][1];(* returnSize)++;for (int i = 1; i < intervalsSize; i++) {if (intervals[i][0] > right) {res[*returnSize][0] = intervals[i][0];res[*returnSize][1] = intervals[i][1];right = intervals[i][1];(* returnSize)++;  }else if (intervals[i][1] > right){res[*returnSize - 1][1] = intervals[i][1];right = intervals[i][1];}}return res;
}

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

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

相关文章

多线程------ThreadLocal详解

目录 1. 什么是 ThreadLocal&#xff1f; 2. 如何使用 ThreadLocal&#xff1f; 3. ThreadLocal 的作用 4. ThreadLocal 的应用场景 5. ThreadLocal 的注意事项 我的其他博客 ThreadLocal 是 Java 中一个很有用的类&#xff0c;它提供了线程局部变量的支持。线程局部变量…

家政服务小程序预约上门,让服务更便捷

随着人们生活节奏的加快&#xff0c;家政服务行业越来越受到人们的欢迎。为了满足市场需求&#xff0c;提高服务质量&#xff0c;家政公司需要开发一款预约上门的家政服务小程序。本文将详细介绍如何制作一个预约上门的家政服务小程序。 一、登录乔拓云网后台 首先&#xff0c…

模块二——滑动窗口:438.找到字符串中所有字母异位词

文章目录 题目描述算法原理滑动窗口哈希表 代码实现 题目描述 题目链接&#xff1a;438.找到字符串中所有字母异位词 算法原理 滑动窗口哈希表 因为字符串p的异位词的⻓度⼀定与字符串p 的⻓度相同&#xff0c;所以我们可以在字符串s 中构造⼀个⻓度为与字符串p的⻓度相同…

【Stm32-F407】Keil uVision5 下新建工程

①双击鼠标左键打开Keil uVision5&#xff0c;选择 Project 下的 New uVision Project &#xff1b; ②在期望的文件夹下创建一个工程&#xff0c;并按如下要求操作&#xff1b; ③添加文件类型&#xff0c;按如下要求操作 ④如有需要可添加相关启动文件在工程文件夹下并添加到…

深度学习中的高斯分布

1 高斯分布数学表达 1.1 什么是高斯分布 高斯分布(Gaussian Distribution)又称正态分布(Normal Distribution)。高斯分布是一种重要的模型&#xff0c;其广泛应用与连续型随机变量的分布中&#xff0c;在数据分析领域中高斯分布占有重要地位。高斯分布是一个非常常见的连续概…

ArrayList与顺序表(带完整实例)

【本节目标】 1. 线性表 2. 顺序表 3. ArrayList的简介 4. ArrayList使用 5. ArrayList的扩容机制 6. 扑克牌 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff0c;常见的线性表…

Mysql 计算地理位置信息

mysql 处理空间关系 MySQL提供了一系列的函数来帮助我们处理空间对象之间的关系&#xff0c;如 ST_Intersects、ST_Contains 等。这些函数可以帮助我们判断空间对象之间的位置关系&#xff0c;并在此基础上执行相应的查询。 多边形查询 在实际应用中&#xff0c;需要查询某个…

【CSS 渐变Gradient详解】线性渐变、径向渐变、锥形渐变及重复渐变

渐变 gradient https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_images/Using_CSS_gradients CSS 属性值定义语法 https://developer.mozilla.org/zh-CN/docs/Web/CSS/angle https://developer.mozilla.org/…

HTTP 301错误:永久重定向,大勇的冒险之旅

大家好&#xff0c;我是大勇&#xff0c;一个喜欢冒险的程序员。今天&#xff0c;我要和大家分享一个我在互联网世界中的冒险故事——如何处理HTTP 301错误&#xff1a;永久重定向。 那天&#xff0c;我像往常一样&#xff0c;打开我的代码编辑器&#xff0c;准备开始一天的工…

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

435. 无重叠区间 已解答 中等 相关标签 相关企业 给定一个区间的集合 intervals &#xff0c;其中 intervals[i] [start(i), end(i)] 。返回 需要移除区间的最小数量&#xff0c;使剩余区间互不重叠 。 示例 1: 输入: intervals [[1,2],[2,3],[3,4],[1,3]]输出: 1解释: 移除…

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; }