当前位置: 首页 > 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
http://www.lryc.cn/news/439346.html

相关文章:

  • Xcode 16 RC (16A242) 发布下载,正式版下周公布
  • git 更换远程地址的方法
  • 9. 什么是 Beam Search?深入理解模型生成策略
  • Spring自定义注解
  • 微信小程序:wx.login或调用uni.login时报错the code is a mock one
  • URL的执行流程
  • 双指针算法专题(2)
  • 加密与安全_优雅存储用户密码的最佳实践
  • 【多线程】深入剖析线程池的应用
  • 『功能项目』切换职业面板【48】
  • 【EasyExcel】@ColumnWidth(value = 20) EasyExcel设置列宽不生效
  • CPU 和 GPU:为什么GPU更适合深度学习?
  • 【机器学习】:解锁数据背后的智慧宝藏——深度探索与未来展望
  • 【Kubernetes】常见面试题汇总(十八)
  • 无限边界:现代整合安全如何保护云
  • HTML贪吃蛇游戏
  • HTML 揭秘:HTML 编码快速入门
  • Ubuntu22.04系统安装opencv步骤简述及问题解决方法
  • 移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——13.mapset
  • 【webpack4系列】webpack基础用法(二)
  • Python Pyvis库创建交互式网络图 高级功能详解
  • Linux服务器上安装git lfs命令
  • S100A9:鸡支原体感染中的免疫调控“双面间谍”【AbMole】
  • 黑神话悟空黑风山攻略
  • Android 11 FileProvider的使用和限制
  • 闭包+面试真题
  • Java企业面试题3
  • 第3章C/C++流程控制
  • 这是一款很棒的AI录音机——Plaud NotePin,但是它注定失败
  • self-play RL学习笔记