leetcode-1094-Car Pooling
问题
You are driving a vehicle that has capacity
empty seats initially available for passengers. The vehicle only drives east (ie. it cannot turn around and drive west.)
Given a list of trips
, trip[i] = [num_passengers, start_location, end_location]
contains information about the i
-th trip: the number of passengers that must be picked up, and the locations to pick them up and drop them off. The locations are given as the number of kilometers due east from your vehicle’s initial location.
Return true
if and only if it is possible to pick up and drop off all passengers for all the given trips.
Example 1:
1 | Input: trips = [[2,1,5],[3,3,7]], capacity = 4 |
Example 2:
1 | Input: trips = [[2,1,5],[3,3,7]], capacity = 5 |
Example 3:
1 | Input: trips = [[2,1,5],[3,5,7]], capacity = 3 |
Example 4:
1 | Input: trips = [[3,2,7],[3,7,9],[8,3,9]], capacity = 11 |
Constraints:
trips.length <= 1000
trips[i].length == 3
1 <= trips[i][0] <= 100
0 <= trips[i][1] < trips[i][2] <= 1000
1 <= capacity <= 100000
分析
思路1: 重新组合 trips,每一个vector\
思路2: 优化,由于题目中的站点最多有1000个,因此可以统计经过每个站点后车上的人员变化数,然后对其求前缀和,同样在求得过程中若出现前缀和大于capacity的情况,那么返回false,否则返回true。没有排序,时间复杂度 $O(n)$。
代码1
1 | // O(nlogn) |
代码2
1 | // O(n) |
Author: Hatton.Liu
Link: http://hattonl.github.io/2020/03/19/leetcode-1094/
License: 知识共享署名-非商业性使用 4.0 国际许可协议