मान लीजिए हमारे पास m x m क्रम का एक वर्ग मैट्रिक्स है; हमें दिए गए मैट्रिक्स की सभी पंक्तियों में सामान्य सभी विशिष्ट तत्वों को ढूंढना है।
तो, यदि इनपुट इस तरह है:
| 13 | 2 | 15 | 4 | 17 |
| 15 | 3 | 2 | 4 | 36 |
| 15 | 2 | 15 | 4 | 12 |
| 15 | 26 | 4 | 3 | 2 |
| 2 | 19 | 4 | 22 | 15 |
तो आउटपुट [2, 4, 15] होगा।
इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंगे:
sortRows() फंक्शन परिभाषित करें। यह मैट्रिक्स लेगा।
n := पंक्तियों की संख्या
i को 0 से n तक के लिए, करें:
सूची matrix[i] को सॉर्ट करें
मुख्य विधि में, निम्नलिखित करें:
n := पंक्तियों की संख्या
sortRows(matrix)
current_idx := आकार n की एक सूची, 0 से भरी हुई
i को 0 से n तक के लिए, करें:
current_idx[i] := 0
f := 0
जब current_idx[0] < n, करें:
value := matrix[0, current_idx[0]]
present := True
i को 1 से n तक के लिए, करें:
जब (current_idx[i] < n और matrix[i][current_idx[i]] <= value), करें:
current_idx[i] := current_idx[i] + 1
यदि matrix[i, current_idx[i] - 1] value के समान नहीं है, तो:
present := False
यदि current_idx[i] n के समान है, तो:
f := 1
लूप से बाहर निकलें
यदि present शून्येतर है, तो:
value प्रदर्शित करें
यदि f 1 के समान है, तो:
लूप से बाहर निकलें
current_idx[0] := current_idx[0] + 1
उदाहरण
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:
MAX = 100 def sortRows(matrix): n = len(matrix) for i in range(0, n): matrix[i].sort(); def find_common(matrix): n = len(matrix) sortRows(matrix) current_idx = [0] * n for i in range (0, n): current_idx[i] = 0 f = 0 while(current_idx[0] < n): value = matrix[0][current_idx[0]] present = True for i in range (1, n): while (current_idx[i] < n and matrix[i][current_idx[i]] <= value): current_idx[i] = current_idx[i] + 1 if (matrix[i][current_idx[i] - 1] != value): present = False if (current_idx[i] == n): f = 1 break if (present): print(value, end = ", ") if (f == 1): break current_idx[0] = current_idx[0] + 1 mat = [ [13, 2, 15, 4, 17], [15, 3, 2, 4, 36], [15, 2, 15, 4, 12], [15, 26, 4, 3, 2], [2, 19, 4, 22, 15]] find_common(mat)
इनपुट
[[13, 2, 15, 4, 17], [15, 3, 2, 4, 36], [15, 2, 15, 4, 12], [15, 26, 4, 3, 2], [2, 19, 4, 22, 15]]
आउटपुट
2, 4, 15,