মান लीजिए हमारे पास एक 2D मैट्रिक्स है जहां प्रत्येक पंक्ति आरोही क्रम में सॉर्ट की गई है। हमें वह सबसे छोटी संख्या ढूंढनी है जो हर पंक्ति में मौजूद हो। अगर ऐसा कोई परिणाम नहीं है, तो -1 वापस करें।
उदाहरण के लिए, यदि इनपुट है:
| 2 | 3 | 5 |
| 5 | 10 | 10 |
| 1 | 3 | 5 |
तो आउटपुट होगा 5
समाधान दृष्टिकोण
इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:
- यदि मैट्रिक्स खाली है, तो -1 वापस करें
- पहली पंक्ति के तत्वों से एक सेट बनाएं
- मैट्रिक्स की प्रत्येक पंक्ति के लिए:
- वर्तमान सेट का पंक्ति के तत्वों के सेट के साथ इंटरसेक्शन लें
- यदि सेट खाली हो जाता है, तो -1 वापस करें
- अंत में सेट का न्यूनतम मान वापस करें
उदाहरण कोड
class Solution:
def solve(self, matrix):
if not matrix:
return -1
first = set(matrix[0])
for row in matrix:
first &= set(row)
if not first:
return -1
return min(first)
ob1 = Solution()
matrix = [
[2, 3, 5],
[5, 10, 10],
[1, 3, 5]
]
print(ob1.solve(matrix))
इनपुट
matrix = [[2, 3, 5], [5, 10, 10], [1, 3, 5]]
आउटपुट
5