1094. 拼车-M-95.18%

在这里插入图片描述

在这里插入图片描述

关键点

以时间点的角度 解决这道题
在有乘客上下车时,车上的人才会变化,才会有false的可能
因此我们应该把每个时间点总结成 增加了多少人,减少了多少人

例子

[[2,1,5],[3,5,7]] capacity = 3

1时间点 :上车2人
5时间点:下车2人,上车3人
7时间点:下车3人

然后拿着capacity = 3 顺序过时间点保证每个时间点 不超过容量 即可

代码
def carPooling(trips, capacity):
    """
    :type trips: List[List[int]]
    :type capacity: int
    :rtype: bool
    """
    def zero():
        return 0
    c=collections.defaultdict(zero)
    for trip in trips:
        num=trip[0]
        time1=trip[1]
        time2=trip[2]
        c[time1]+=num
        c[time2]-=num
    for key in sorted(c.keys()):
        capacity-=c[key]
        if capacity < 0:
            return False
    return True

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值