मान लीजिए, 0s से आरंभिक एक n x n मैट्रिक्स है। अब, एक सूची दी गई है और इसमें कुछ जोड़े हैं जिनमें एक विशेष पंक्ति और एक स्तंभ स्थिति है। सूची में प्रत्येक आइटम के लिए, कोशिकाओं की सामग्री 1 से बढ़ जाती है जहां पंक्ति संख्या और कॉलम संख्या सूची में आइटम I के पंक्ति मान और कॉलम मान से कम होती है। सभी सूची तत्वों का पता लगाने के बाद, हमें मैट्रिक्स में उन कोशिकाओं की संख्या का पता लगाना होगा जिनमें अधिकतम मूल्य होता है। (पंक्ति और स्तंभ अनुक्रमणिका 0 से शुरू होती है)
इसलिए, यदि इनपुट इनपुट_लिस्ट =[[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 सेल हैं जिनमें मान शामिल है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे
- एक्सपोज़ :=0
- ypos :=0
- इनपुट_सूची में प्रत्येक आइटम के लिए, करें
- यदि xpos 0 के समान है, तो
- एक्सपोज़:=आइटम[0]
- ypos:=आइटम[1]
- अन्यथा,
- xpos :=न्यूनतम (xpos, item[0])
- ypos :=न्यूनतम (ypos, आइटम[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