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, nums[i] = [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

nums[i].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;
    }
}
相关推荐
偷吃的耗子4 小时前
【CNN算法理解】:CNN平移不变性详解:数学原理与实例
人工智能·算法·cnn
dazzle5 小时前
机器学习算法原理与实践-入门(三):使用数学方法实现KNN
人工智能·算法·机器学习
那个村的李富贵5 小时前
智能炼金术:CANN加速的新材料AI设计系统
人工智能·算法·aigc·cann
张张努力变强6 小时前
C++ STL string 类:常用接口 + auto + 范围 for全攻略,字符串操作效率拉满
开发语言·数据结构·c++·算法·stl
万岳科技系统开发6 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
张登杰踩6 小时前
MCR ALS 多元曲线分辨算法详解
算法
YuTaoShao6 小时前
【LeetCode 每日一题】3634. 使数组平衡的最少移除数目——(解法一)排序+滑动窗口
算法·leetcode·排序算法
波波0076 小时前
每日一题:.NET 的 GC是如何分代工作的?
算法·.net·gc
风暴之零6 小时前
变点检测算法PELT
算法
深鱼~6 小时前
视觉算法性能翻倍:ops-cv经典算子的昇腾适配指南
算法·cann