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

用WordPress管理app西安seo优化公司

用WordPress管理app,西安seo优化公司,网址后缀名大全,wordpress能连115大家好,欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述(简单): 与车相交的点 给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] [starti, endi] &…

大家好,欢迎来到无限大的频道。

今日继续给大家带来力扣题解。

题目描述(简单):

与车相交的点

给你一个下标从 0 开始的二维整数数组 nums 表示汽车停放在数轴上的坐标。对于任意下标 i,nums[i] = [starti, endi] ,其中 starti 是第 i 辆车的起点,endi 是第 i 辆车的终点。

返回数轴上被车 任意部分 覆盖的整数点的数目。

解题思路:

这道问题抽象就抽象在,读不懂题目要求干啥,也不明白举例是什么意思,得先把题目看懂。(我来中译中一下)

这个问题可以理解为在数轴上有多辆车,每辆车的停车区域用一个区间来表示,例如 nums[i] = [starti, endi] 表示第 i 辆车的起点为 starti,终点为 endi。我们需要计算在数轴上这些车的停车区域重叠部分所覆盖的整数点的总数。

具体来说,我们需要求出所有车辆停车区间内的整数点的总和,即使得某一点被多辆车的区间覆盖也只算一次。

示例说明:

假设车辆的区间如下:

  • 车1: [1, 3]

  • 车2: [2, 5]

  • 车3: [4, 6]

那么这些车辆覆盖的区间为:

  • 车1覆盖的整数点为 {1, 2, 3}

  • 车2覆盖的整数点为 {2, 3, 4, 5}

  • 车3覆盖的整数点为 {4, 5, 6}

所有被覆盖的整数点为 {1, 2, 3, 4, 5, 6},所以被覆盖的整数点总数为 6。

算法思路

  1. 合并区间:首先对所有区间进行合并,去掉重叠部分。

  2. 计算被覆盖的点:在合并之后计算每个区间中整数点的数量,即为 end - start + 1 的总和。

3.采用排序加贪心策略

参考代码:

// 定义一个结构体来表示区间
typedef struct {int start;int end;
} Interval;
​
// 比较函数用于排序
int compare(const void *a, const void *b) {Interval *intervalA = (Interval *)a;Interval *intervalB = (Interval *)b;return intervalA->start - intervalB->start;
}
​
int numberOfPoints(int** nums, int numsSize, int* numsColSize) {if (numsSize == 0) return 0;
​// 1. 创建一个 Interval 数组Interval* intervals = (Interval*)malloc(numsSize * sizeof(Interval));
​// 2. 将 nums 转换为 Interval 数组for (int i = 0; i < numsSize; i++) {intervals[i].start = nums[i][0];intervals[i].end = nums[i][1];}
​// 3. 排序区间qsort(intervals, numsSize, sizeof(Interval), compare);
​int totalPoints = 0;int currStart = intervals[0].start;int currEnd = intervals[0].end;
​// 4. 合并区间并计算覆盖的点for (int i = 1; i < numsSize; i++) {if (intervals[i].start <= currEnd) { // 如果有重叠// 扩大当前区间的结束点if (intervals[i].end > currEnd) {currEnd = intervals[i].end;}} else { // 如果没有重叠,计算当前区间的点数totalPoints += currEnd - currStart + 1;currStart = intervals[i].start;currEnd = intervals[i].end;}}
​// 添加最后一个区间的覆盖点totalPoints += currEnd - currStart + 1;
​// 释放内存free(intervals);
​return totalPoints;
}
​

时间复杂度:

1. 创建 Interval 数组:

   创建 Interval 数组的时间复杂度是 O(n),其中 n是输入的区间数量 `numsSize`。

2. 将 nums 转换为 Interval 数组:

   遍历所有区间并将其转换为 Interval 的时间复杂度同样是 O(n)。

3. 排序区间:

   使用 `qsort` 进行排序,排序的时间复杂度是 O(n log n)。

4. 合并区间并计算覆盖的点:

   遍历排好序的区间以合并并计算覆盖点的时间复杂度是 O(n)。

综上所述,主要的时间开销在于排序,因此整个 `numberOfPoints` 函数的时间复杂度为:

[O(n log n)]

 空间复杂度:

1. 存储 Interval 数组:

   创建存储 Interval 的数组需要 O(n)的额外空间。

2. 其他空间:

   在函数中使用的变量、指针等只占用常数空间 O(1),不随 n 的变化而变化。

因此,整个函数的空间复杂度主要依赖于存储 Interval 数组的开销,为:

[O(n)]

总结:

时间复杂度:(O(n log n))

空间复杂度:(O(n))​

http://www.ds6.com.cn/news/83050.html

相关文章:

  • 单位做网站有哪些如何设计网站步骤
  • 加强政府网站信息内容建设的实施意见跨境电商靠谱吗
  • 在国外做网站推广百度网站电话是多少
  • 成都最新通告今天seoul怎么读
  • 平台营销型网站建设cba排名最新排名
  • 怎么做网站后台界面win10优化工具下载
  • wordpress+编辑器字号优化网站标题是什么意思
  • 网站搜索引擎优化的基本内容专业网络推广公司
  • 黑龙江华龙建设集团网站重庆seo代理计费
  • 动画毕业设计代做网站国外免费舆情网站有哪些软件
  • 在线观看视频网站怎么做百度网盘破解版
  • python可以做网站开发吗百度搜索排名推广
  • php做网站的技术难点安卓优化大师app下载安装
  • 微信打卡小程序怎么做杭州seo搜索引擎优化
  • 学校网站制作素材网络运营是什么意思
  • 建立网站有什么作用公司网站搭建流程
  • 网站接入支付宝在线交易怎么做微信公众号平台官网
  • 2017网站建设有市场吗不需要验证码的广告平台
  • 做网站违法吗营销策略有哪几种
  • dede做的网站弹广告杭州百度推广开户
  • 做视频的网站靠什么收入怎么自己做一个网站平台
  • 详情页模板哪个网站好站长工具综合查询
  • 怎么建立网站数据库连接网站制作公司哪家好
  • 最近新闻热点事件百度seo关键词工具
  • 网站开发与排行榜前十名
  • 企业网站设计推广方案免费的个人网站怎么做
  • 新手学做网站图杭州网站建设 seo
  • html5 网站 代码百度优化教程
  • 网站建设时间、人力及成本估算信息检索关键词提取方法
  • 包头学做网站百度开户需要什么条件