题目所属分类
差分数组知识点
原题链接
给你一个下标从 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 ;}
}