LeetCode 🟡 1701. Average Waiting Time
🔗 🟡 1701. Average Waiting Time 1436
tags: Biweekly Contest 42
陣列(Array)
模擬(Simulation)
FCFS
題意
有一家只有一位廚師的餐廳,給定一個二維整數陣列 ,其中 :
- 表示第 個顧客到達的時間,並且陣列已按照到達時間的 非遞減 順序排列。
- 表示準備第 個顧客餐點所需的時間。
當一位顧客到達時,他會將他的訂單交給廚師,廚師一旦空閒就會開始為這位顧客準備餐點。每位顧客會一直等待到廚師完成他的訂單。廚師同時只能為一位顧客準備餐點。廚師會嚴格按照 訂單給他的順序 來準備餐點。
返回所有顧客需要等待的 平均 時間。與標準答案誤差在 範圍以內,都視為正確結果。
思路:FCFS(First-Come, First-Served)
根據題意,這位廚師是按照作業系統中的 FCFS(First-Come, First-Served) 原則來為顧客準備餐點。換句話說,後到達的顧客必須等待前面的顧客先完成訂單。
因此可以維護前一個顧客的完成時間 ,也就是可以開始準備下一個顧客訂單的時間。對於每個顧客而言:
- 如果當前時間 小於或等於該顧客的到達時間 ,表示廚師在該名顧客到達時是空閒的,可以立即開始準備。此時 會更新為 。
- 如果當前時間 大於該顧客的到達時間 ,表示該顧客必須等待到 時間才能開始準備。此時 會更新為 。
因此每名顧客的等待時間為 ,將所有顧客的等待時間相加,最後除以顧客總數即可得到平均等待時間。
複雜度分析
- 時間複雜度:,由於已經按照到達時間排序,因此只需要遍歷所有顧客一次。
- 空間複雜度:,只使用了常數級別的額外空間。
1 | class Solution: |
1 | class Solution { |
寫在最後
Cover photo is remixed from @吃肥皂泡泡, thanks for their work!
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 十六個天亮!
評論
WalineGiscus