1094. 拼车
Posted yangbocsu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1094. 拼车相关的知识,希望对你有一定的参考价值。
1094. 拼车
一、题目
车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向)
给定整数 capacity 和一个数组 trips , trip[i] = [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接他们和放他们的位置分别是 fromi 和 toi 。这些位置是从汽车的初始位置向东的公里数。
当且仅当你可以在所有给定的行程中接送所有乘客时,返回 true,否则请返回 false。
二、参考代码
2.1 暴力法
class Solution
public boolean carPooling(int[][] trips, int capacity)
int[] num = new int[1001];
for(int[] trip : trips)
int start = trip[1];
int end = trip[2];
int val = trip[0];
for(int i = start; i < end; i++ )
num[i] += val;
if(num[i] > capacity)
return false;
return true;
2.2 差分数组法
class Solution
public boolean carPooling(int[][] trips, int capacity)
int sites[] = new int[1001];
for (int[] trip : trips)
// 上车加
sites[trip[1]] += trip[0];
// 下车减
sites[trip[2]] -= trip[0];
// 从始发站计数,超过capacity则超载
int total = 0;
for (int i : sites)
total += i;
if (total > capacity)
return false;
return true;
以上是关于1094. 拼车的主要内容,如果未能解决你的问题,请参考以下文章