ETH官方钱包

前往
大廳
主題

LeetCode - 1094. Car Pooling 解題心得

Not In My Back Yard | 2022-07-05 12:00:26 | 巴幣 2 | 人氣 158

題目連結(jié):


題目意譯:
現(xiàn)在有一臺車有著 capacity 個(gè)空位。這個(gè)車子只往東方開去(也就是它不得回轉(zhuǎn)並往西邊開)。

你被給定一整數(shù) capacity 以及一陣列 trips,其中 trips[i] = [numPassengersi, fromi, toi] 依序代表第 i 個(gè)旅行行程有 numPassengersi 個(gè)乘客並且是從地點(diǎn) fromi 載著它們直到地點(diǎn) toi 才下車。地點(diǎn)的編號是以車子的初始位置往右經(jīng)過之公里數(shù)。

回傳真(True)如果可以把所有行程的乘客都載到指定的位置;反之則回傳假(False)。

限制:
1 ≦ trips.length ≦ 1000
trips[i].length == 3
1 ≦ numPassengersi ≦ 100
0 ≦ fromi < toi ≦ 1000
1 ≦ capacity ≦ 10 ^ 5



範(fàn)例測資:
範(fàn)例 1:
輸入: trips = [[2,1,5],[3,3,7]], capacity = 4
輸出: false

範(fàn)例 2:
輸入: trips = [[2,1,5],[3,3,7]], capacity = 5
輸出: true


解題思維:
精神很簡單,就是利用掃描線演算法(Sweep Line Algorithm),如這題把每個(gè)「事件點(diǎn)」(Event Point,也就是乘客上下車)的乘客數(shù)量算出來。

然後看這些事件點(diǎn)有沒有任何時(shí)刻的乘客人數(shù)大於 capacity。如果有則無法將所有乘客載走,因此回傳假;反之,如果每個(gè)事件點(diǎn)乘客人數(shù)都小於或等於 capacity,則回傳真。




此次分享到此為止,如有任何更加簡潔的想法或是有說明不清楚之地方,也煩請各位大大撥冗討論。

創(chuàng)作回應(yīng)

更多創(chuàng)作