leetcode 周赛——2848. 与车相交的点

题目所属分类

差分数组知识点

原题链接

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

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

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

题解

有关差分数组的性质
这里面其实就是最原始的差分数组的全为0的,然后我们将原始数组中对应的区间内所有数加1,相当于所对应的start加1,相当于end+1处减1,这样
这思路是牛的!!!!
在这里插入图片描述

class Solution {
    
    
    public int numberOfPoints(List<List<Integer>> nums) {
    
    
        int []  a = new int[110];
        for(var p : nums){
    
    
            a[p.get(0)]++;
            a[p.get(1)+1]--;
        }
        int ans = 0 ; int sum = 0 ;
        for(int d : a){
    
    
            sum += d ;
            if(sum > 0){
    
    
                ans++;
            }
        }
        return ans ;

    }
}

猜你喜欢

转载自blog.csdn.net/qq_41810415/article/details/132928337