力扣 1094 拼车

#拼车问题

假设你是一位顺风车司机,车上最初有 capacity 个空座位可以用来载客。由于道路的限制,车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向,你可以将其想象为一个向量)。

这儿有一份乘客行程计划表 trips[][],其中 trips[i] = [num_passengers, start_location, end_location] 包含了第 i 组乘客的行程信息:

必须接送的乘客数量;
乘客的上车地点;
以及乘客的下车地点。
这些给出的地点位置是从你的 初始 出发位置向前行驶到这些地点所需的距离(它们一定在你的行驶方向上)。

请你根据给出的行程计划表和车子的座位数,来判断你的车是否可以顺利完成接送所有乘客的任务(当且仅当你可以在所有给定的行程中接送所有乘客时,返回 true,否则请返回 false)。

代码如下:含详细注解

class Solution {
    public boolean carPooling(int[][] trips, int capacity) {
   int result[]=new int[1001];//该数组用来存放每个地点车内的乘客数量,上车地点默认为0-1000;
   for(int i=0;i<trips.length;i++)//遍历每一组乘客乘车信息
   {
       for(int j=trips[i][1];j<trips[i][2];j++)//j的值从每组上车点到下车点
       {
           result[j]+=trips[i][0];//在每个乘车地段都把对应的乘客数量累加到数组
           if(result[j]>capacity)//如果相应地段车内乘客大于允乘人数,返回false
           {
               return false;
           }

       }

   }
   return true;
}
}

你可能感兴趣的:(java,算法,leetcode,数据结构)