LeetCode 2848. Points That Intersect With Cars

You are given a 0-indexed 2D integer array nums representing the coordinates of the cars parking on a number line. For any index i, numsi = starti, endi where starti is the starting point of the ith car and endi is the ending point of the ith car.

Return the number of integer points on the line that are covered with any part of a car.

Example 1:

Input: nums = \[3,6,1,5,4,7]

Output: 7

Explanation: All the points from 1 to 7 intersect at least one car, therefore the answer would be 7.

Example 2:

Input: nums = \[1,3,5,8]

Output: 7

Explanation: Points intersecting at least one car are 1, 2, 3, 5, 6, 7, 8. There are a total of 7 points, therefore the answer would be 7.

Constraints:

1 <= nums.length <= 100

numsi.length == 2

1 <= starti <= endi <= 100


这题给了一个array of intervals,求这些intervals里cover了多少个数字。

第一反应就是拿个set来存放所有的数字,最后return size。非常简单。

复制代码
class Solution {
    public int numberOfPoints(List<List<Integer>> nums) {
        Set<Integer> set = new HashSet<>();
        for (List<Integer> num : nums) {
            for (int i = num.get(0); i <= num.get(1); i++) {
                set.add(i);
            }
        }
        return set.size();
    }
}

然后就是这题也算是和interval相关的,就也可以考虑一下line sweep。按照meeting room2的套路,搞了个数组表示所有的points,开头++,结尾--,结果就踩坑了。因为之前的meeting room是结束时间相当于是exclusive的,但这里如果是1,3的话需要同时考虑1、2、3相当于是inclusive的。所以刚开始简单粗暴的以为只要在算sum的时候判断如果当前这个point值为-1的话也可以result++。结果没想到还是漏了一种情况,就是1,1的时候这里也算一个,但是point的值为0。所以最后看了答案才发现可以在构造points数组的时候在结束+1的时间点再--就可以解决这个问题了。

复制代码
class Solution {
    public int numberOfPoints(List<List<Integer>> nums) {
        int[] points = new int[101];
        for (List<Integer> num : nums) {
            points[num.get(0) - 1]++;
            points[num.get(1)]--;
        }
        int result = 0;
        int prefixSum = 0;
        for (int point : points) {
            prefixSum += point;
            if (prefixSum > 0) {
                result++;
            }
        }
        return result;
    }
}
相关推荐
benben0448 分钟前
强化学习之DQN算法族(基于gymnasium开发)
算法
何以解忧,唯有..1 小时前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
想吃火锅10052 小时前
【leetcode】88.合并两个有序数组js
算法
生成论实验室3 小时前
机器人:一个自主运动的系统
人工智能·算法·语言模型·机器人·自动驾驶·agi·安全架构
Qres8213 小时前
算法复键——树状数组
数据结构·算法
H178535090963 小时前
SolidWorks第四部分_直接实体建模特征9_替换面原理
线性代数·算法·机器学习·3d建模·solidworks
不会就选b3 小时前
算法日常・每日刷题--<二分查找>3
算法
绿算技术4 小时前
Mooncake 与绿算ForinnBase GroundPool如何联手打破推理僵局?
科技·算法·架构
-森屿安年-4 小时前
63. 不同路径 II
c++·算法·动态规划