一维差分
差分map写法:
- 主要用到treemap的merge方法
public boolean carPooling(int[][] trips, int capacity) {
TreeMap<Integer, Integer> d = new TreeMap<>();
for (int[] t : trips) {
int num = t[0], from = t[1], to = t[2];
d.merge(from, num, Integer::sum);
d.merge(to, -num, Integer::sum);
}
int s = 0;
for (int v : d.values()) {
s += v;
if (s > capacity) {
return false;
}
}
return true;
}二维差分
原理图
离散化 + 二维差分
leetcode:LCP74.最强祝福力场
此题困惑点:
- 存在非整数 ,解决:将所有坐标 * 2
- 坐标范围很大,解决:离散化
- 离散化步骤:
- 排序
- 去重
- 重新编号
- 离散化步骤:
转载请注明出处
