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

LeetCode:2848. 与车的相交点 一次遍历,时间复杂度O(n)

2848. 与车的相交点

today 2848. 与车的相交点

题目描述

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

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

示例 1:

输入:nums = [[3,6],[1,5],[4,7]]
输出:7
解释:从 1 到 7 的所有点都至少与一辆车相交,因此答案为 7 。
示例 2:

示例2:

输入:nums = [[1,3],[5,8]]
输出:7
解释:1、2、3、5、6、7、8 共计 7 个点满足至少与一辆车相交,因此答案为 7 。

提示:

  • 1 <= nums.length <= 100
  • nums[i].length == 2
  • 1 <= starti <= endi <= 100

题目解析

题目要求找出任意部分覆盖的整数点的数目。那么我们可以维护一个数组arr,表示所有整数点,由于1 <= starti <= endi <= 100,我们数组的长度为101,其中arr[i]表示整数点i是否被车覆盖。

遍历nums,对于每辆车,我们将 s t a r t i start_i starti e n d i end_i endi 之间的整数点都标记为true,即arr[starti] = truearr[endi+1] = true

最后遍历arr,统计true的个数即可。

复杂度分析:

  • 时间复杂度: O ( n ) O(n) O(n)
  • 空间复杂度: O ( 1 ) O(1) O(1)

代码实现

C++版本:

class Solution {
public:int numberOfPoints(vector<vector<int>>& nums) {int n=nums.size();int ans=0;vector<bool> arr(101,0);for(int i=0;i<n;i++){for(int j=nums[i][0];j<=nums[i][1];j++){if(!arr[j]){ans++;arr[j]=true;}}}return ans;}
};

Go版本:

func numberOfPoints(nums [][]int) int { arr:=make([]bool,101)ans:=0for i:=range(nums){for j:=nums[i][0];j<=nums[i][1];j++{if(!arr[j]){ans++arr[j]=true}}}return ans
}

Python版本:

class Solution(object):def numberOfPoints(self, nums):n=[False]*101l=len(nums)ans=0for i in range(0,l):for j in range(nums[i][0],nums[i][1]+1):if not n[j]  :ans+=1n[j]=Truereturn ans

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • OPEN AI o1已经像人类一样思考了。。。
  • Oracle发邮件功能:设置的步骤与注意事项?
  • Java-数据结构-二叉树-习题(二) (´▽`)ノ
  • 实习期间git的分枝管理以及最常用的命令
  • 使用vant UI实现时间段选择
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset
  • 电脑开机速度慢怎么解决?
  • 烧结机等调速系统电气设计-大作业/毕设
  • C# UDP与TCP点发【速发速断】模式
  • 用SpringBoot进行通义千问接口调用同步方法和异步流式多轮回复方法
  • go-map系统学习
  • 【 html+css 绚丽Loading 】 000049 流云穿梭环
  • Imagination推出性能最高且具有高等级功能安全性的汽车GPU IP
  • VuePress搭建文档网站/个人博客(详细配置)主题配置-导航栏配置
  • Redhat 8,9系(复刻系列) 一键部署Oracle23ai rpm
  • [case10]使用RSQL实现端到端的动态查询
  • 345-反转字符串中的元音字母
  • Date型的使用
  • ES6简单总结(搭配简单的讲解和小案例)
  • HTTP请求重发
  • Lucene解析 - 基本概念
  • puppeteer stop redirect 的正确姿势及 net::ERR_FAILED 的解决
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 创建一种深思熟虑的文化
  • 关于for循环的简单归纳
  • 解决iview多表头动态更改列元素发生的错误
  • 利用DataURL技术在网页上显示图片
  • 如何合理的规划jvm性能调优
  • 微服务核心架构梳理
  • 小李飞刀:SQL题目刷起来!
  • 学习HTTP相关知识笔记
  • 用Python写一份独特的元宵节祝福
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 机器人开始自主学习,是人类福祉,还是定时炸弹? ...
  • ​MySQL主从复制一致性检测
  • #HarmonyOS:Web组件的使用
  • $(selector).each()和$.each()的区别
  • (k8s)Kubernetes本地存储接入
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (论文阅读11/100)Fast R-CNN
  • (译)计算距离、方位和更多经纬度之间的点
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • .Net Core/.Net6/.Net8 ,启动配置/Program.cs 配置
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Project Open Day(2011.11.13)
  • .net6 webapi log4net完整配置使用流程
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .NET中的Exception处理(C#)
  • .sh文件怎么运行_创建优化的Go镜像文件以及踩过的坑
  • /deep/和 >>>以及 ::v-deep 三者的区别
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @private @protected @public
  • @property @synthesize @dynamic 及相关属性作用探究
  • @Transactional 详解