查詢在 Python 中可以兌換鈔票的最小時間
假設有 n 個收銀員正在兌換錢款,目前,第 i 個收銀員前面有 ki 個人。現在,排隊到第 i 個收銀員的第 j 個人有 m[i,j] 張鈔票。我們必須找到最早可以兌換鈔票的時間。我們必須記住,收銀員掃描一張鈔票需要 5 秒。完成每個顧客所有鈔票的掃描後,他/她需要 15 秒來兌換鈔票。
因此,如果輸入類似於 輸入:n = 6,k = [12, 12, 12, 12, 12, 12]
| 7 | 8 | 9 | 7 | 9 | 6 | 10 | 9 | 9 | 6 | 7 | 8 |
| 10 | 7 | 10 | 9 | 8 | 9 | 9 | 9 | 9 | 6 | 5 | 6 |
| 9 | 8 | 8 | 9 | 8 | 6 | 7 | 9 | 10 | 6 | 6 | 7 |
| 7 | 6 | 9 | 6 | 6 | 9 | 8 | 9 | 6 | 6 | 8 | 9 |
| 9 | 8 | 7 | 6 | 5 | 10 | 8 | 10 | 7 | 6 | 6 | 8 |
| 8 | 7 | 6 | 5 | 7 | 9 | 7 | 9 | 6 | 5 | 5 | 7 |
則輸出將為 585,因為收銀員需要 5 秒來掃描每個顧客的每張鈔票,所以加上 5*m[I,j]。現在每個收銀員每位顧客需要 15 秒,所以將 15*k[] 加到答案中。計算每個收銀員所需時間後,所需的最短時間將是答案。因此,收銀員 m[5] 所需的最短時間為 585。
為了解決這個問題,我們將遵循以下步驟:
n := k 的大小
minimum := 99999
對於 i 從 0 到 n,執行
temp := k[i] * 15
對於 j 從 0 到 k[i],執行
temp := temp + m[i, j] * 5
如果 temp < minimum,則
minimum := temp
返回 minimum
示例
讓我們看看下面的實現,以便更好地理解:
def minTimeToExchange(k, m): n = len(k) minimum = 99999 for i in range(n): temp = k[i] * 15 for j in range(k[i]): temp += m[i][j] * 5 if temp < minimum: minimum = temp return minimum k = [12, 12, 12, 12, 12, 12] m = [ [7,8,9,7,9,6,10,9,9,6,7,8], [10,7,10,9,8,9,9,9,9,6,5,6], [9,8,8,9,8,6,7,9,10,6,6,7], [7,6,9,6,6,9,8,9,6,6,8,9], [9,8,7,6,5,10,8,10,7,6,6,8], [8,7,6,5,7,9,7,9,6,5,5,7]] print(minTimeToExchange(k, m))
輸入
[12, 12, 12, 12, 12, 12], [[7,8,9,7,9,6,10,9,9,6,7,8], [10,7,10,9,8,9,9,9,9,6,5,6], [9,8,8,9,8,6,7,9,10,6,6,7], [7,6,9,6,6,9,8,9,6,6,8,9], [9,8,7,6,5,10,8,10,7,6,6,8], [8,7,6,5,7,9,7,9,6,5,5,7]]
輸出
585
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP