[算法思考记录]力扣1094.拼车 Java

Problem: 1094. 拼车

相当于在一条路上开车,乘客在某个时间点上车,他们会影响在下车之前的路程的车载人数。

很明显这是差分的做法,只要把行车的路程抽象成一个差分数组,把上下车抽象成区间更改,一切都变得简单

Code

class Solution {
    public boolean carPooling(int[][] trips, int capacity) {
        int[] road = new int[1010];
        for (int[] t : trips) {
            int num = t[0], from = t[1], to = t[2];
            road[from] += num;
            road[to] -= num;
        }
        int s = 0;
        for (int v : road) {
            s += v;
            if (s > capacity) return false;
        }
        return true;

    }
}