1094. Car Pooling

Car Pooling

题解

记$ tripk 为 (z_k,s_k,t_k) ,构造数组x[0…n-1],y[0…n-1],使得x{sk}=z_k,y{t_k}=z_k$

设在位置时,车里的乘客的数量是,则

其中分别为在位置上车和下车的乘客数。

于是问题转化为,根据差分数组,恢复数组。

Java实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution{
public boolean carPooling(int[][] trips,int capacity){
int[] diff = new int[1001];
for(int[] t:trips){
diff[t[1]]+=t[0];
diff[t[2]]-=t[0];
}
int total = 0;
for(int c:diff){
total+=c;
if(total>capacity){
return false;
}
}
return true;
}
}
作者

黄培

发布于

2024-07-10

更新于

2026-10-25

许可协议