【每日一题】LeetCode 2848.与车相交的点(数组、哈希表、前缀和)

【每日一题】LeetCode 2848.与车相交的点(数组、哈希表、前缀和)

题目描述

给定一个二维整数数组 nums,其中 nums[i] = [starti, endi] 表示第 i 辆车的起点为 starti,终点为 endi。我们需要找出数轴上被车辆覆盖的整数点的总数。

思路分析

这个问题可以通过以下步骤解决:

  1. 初始化集合 :创建一个 HashSet 来存储数轴上被覆盖的整数点。
  2. 遍历车辆:对于数组中的每一辆车,遍历其起点到终点的每一个整数点。
  3. 添加点:将遍历到的每一个整数点添加到集合中。
  4. 计算结果:由于集合中的元素是唯一的,集合的大小即为被覆盖的整数点的总数。

输入示例

  • 输入:[[3,6],[1,5],[4,7]]

  • 输出:7

  • 解释:从 1 到 7 的所有点都至少与一辆车相交,因此答案为 7。

  • 输入:[[1,3],[5,8]]

  • 输出:7

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

代码实现

java 复制代码
class Solution {
    public int numberOfPoints(List<List<Integer>> nums) {
        // 初始化一个 HashSet 来存储被覆盖的整数点
        Set<Integer> set = new HashSet<>();
        // 获取车辆的数量
        int n = nums.size();
        // 遍历每一辆车
        for (int i = 0; i < n; i++) {
            // 获取当前车辆的起点和终点
            int start = nums.get(i).get(0);
            int end = nums.get(i).get(1);
            // 遍历当前车辆覆盖的每一个整数点
            for (int j = start; j <= end; j++) {
                // 将整数点添加到集合中
                set.add(j);
            }
        }
        // 返回集合的大小,即被覆盖的整数点的总数
        return set.size();
    }
}
相关推荐
阿俊-全栈开发8 分钟前
LikeShop 单商户SaaS商城分销模块二开:佣金计算与结算逻辑实现
java·开发语言·微服务·likeshop·likeshop开源商城·likeshop多商户
Logic1013 小时前
C语言/数据结构位运算题解:异或XOR找出学习计划中的“独特学习时间“——只出现一次的数字
c语言·数据结构·数组·位运算·时间复杂度·算法题·异或性质
wuminyu3 小时前
C++协程实现接收端的零拷贝Buffer管理原理剖析
java·linux·c语言·jvm·c++
小蒋学算法3 小时前
算法-交替删除操作后最后剩下的整数-跟着灵茶山艾府学算法
数据结构·算法
荆棘鸟智能4 小时前
林业遥感长势评估怎么做?从NDVI时序分析到LiDAR蓄积量回归
人工智能·算法·智慧林业
hhb_6185 小时前
AIRAGDebug:一键定位RAG链路异常
人工智能·python·算法
朝朝辞暮i5 小时前
C++ 第 6 课:switch —— 多状态选择
开发语言·c++·算法
苏打豆5 小时前
Pinocchio源码阅读——刚体运动物理量空间变换及求导
c++·线性代数·算法·矩阵·机器人
蜗牛互联网6 小时前
WSL Containers GA:本地AI容器的生命周期、网络与治理验收
java·网络·人工智能·后端
FluxArt6 小时前
GPT Image 2.5 中文提示词教程:Flux Art 可复用模板
前端·gpt·算法