LeetCode题目:1094. 拼车

题目

题目链接:https://leetcode-cn.com/problems/car-pooling/
题目解析:题目比较好理解,给一个二维数组,每一个数组里面放着三个数据,上车人数,上车地点,下车地点,此外路线是一条直线。
我一开始准备用暴力,但是发现越写越复杂就违背了贪心的思想。所以我还是去后面看看别人的思路,理解了一个思路。
将路程变成一个数组,然后将上车地点作为数组的索引,然后数组里面存放的是车上减少或者增加的座位。遍历完数组之后,开始遍历路程数组,然后中间有座位过多的化就返回false

代码

class Solution {
    public boolean carPooling(int[][] trips, int capacity) {
    	//创建路程数组
    	int[] capacitylength = new int[1001];
    	//遍历数组,将车在每个地点的座位情况记录下来
    	for(int i=0;i<trips.length;i++) {
    		capacitylength[trips[i][1]] -= trips[i][0];
    		capacitylength[trips[i][2]] += trips[i][0];
    	}
    	//遍历路程数组,将座位情况放到座位上,一旦座位出现异常就返回false
    	for(int i=0;i<capacitylength.length;i++) {
    		capacity += capacitylength[i];
    		if(capacity<0)
    			return false;
    	}
    	return true;
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值