Python程式:查詢矩陣中包含最大值的單元格
假設有一個n x n的矩陣,初始值為0。現在給定一個列表,其中包含一些對,每個對包含一個特定的行號和列號。對於列表中的每個元素i,如果矩陣的行號和列號都小於元素i的行值和列值,則矩陣中對應單元格的值加1。遍歷完所有列表元素後,我們需要找到矩陣中包含最大值的單元格數量。(行和列索引從0開始)
因此,如果輸入類似於input_list = [[3, 5], [4, 6], [5, 3]],則輸出為9。假設這是一個5 x 6的矩陣。最初矩陣中的值為
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
遍歷列表的第一個元素後,矩陣變為−
1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
遍歷列表的第二個元素後,矩陣變為−
2 2 2 2 2 1 2 2 2 2 2 1 2 2 2 2 2 1 1 1 1 1 1 1 0 0 0 0 0 0
遍歷列表的第三個元素後,矩陣變為−
3 3 3 2 2 1 3 3 3 2 2 1 3 3 3 2 2 1 2 2 2 1 1 1 1 1 1 0 0 0
矩陣中的最大值為3,並且有9個單元格包含該值。
為了解決這個問題,我們將遵循以下步驟
- xpos := 0
- ypos := 0
- 對於input_list中的每個元素,執行以下操作
- 如果xpos等於0,則
- xpos := item[0]
- ypos := item[1]
- 否則,
- xpos := min(xpos, item[0])
- ypos := min(ypos, item[1])
- 如果xpos等於0,則
- 返回(xpos * ypos)
示例
讓我們看看以下實現以更好地理解−
def solve(input_list):
xpos = 0
ypos = 0
for item in input_list:
if xpos == 0:
xpos = item[0]
ypos = item[1]
else:
xpos = min(xpos,item[0])
ypos = min(ypos,item[1])
return (xpos * ypos)
print(solve([[3, 5], [4, 6], [5, 3]]))輸入
[[3, 5], [4, 6], [5, 3]]
輸出
9
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP