【 NO.1 多个数组求交集】
解题思路
使用 Set 求交集即可。
代码展示
【 NO.2 统计圆内格点数目】
解题思路
枚举每个圆内的所有的点,将其加入到 Set 中,最后 Set 的大小即为圆内格点数目。
代码展示
【 NO.3 统计包含每个点的矩形数目】
解题思路
与第四题类似,只不过变成了二维的。
先离散化处理,然后使用树状数组实现 “区间加、单点查” 的能力。
代码展示
【 NO.4 花期内花的数目】
解题思路
首先进行离散化处理,start[i]
, end[i]
, person[i]
的原始数据范围都是 10^9, 实际上可以对他们进行压缩,也并不影响正确性。
比如 [[5, 10], [100, 200]], [1, 2, 3]
可以被压缩成 [[4, 5], [6, 7]], [1, 2, 3]
。
压缩后我们使用树状数组实现 “区间加、单点查” 的功能,即支持如下两种操作:
- 给区间
[l, r]
加上d
- 求点
x
的值
相当于使用树状数组维护 flowers 的差分数组的前缀和。
代码展示