मान लीजिए कि हमारे पास रेक्ट नामक एक सरणी है जहां रेक्ट [i] में दो तत्व हैं [len_i, wid_i], जहां len_i और wid_i क्रमशः ith आयत की लंबाई और चौड़ाई का प्रतिनिधित्व कर रहे हैं। अब हम ith आयत को काटकर एक वर्ग बना सकते हैं जिसकी भुजा की लंबाई k की हो, यदि k <=lenn_i और k <=wid_i दोनों हों। इसलिए उदाहरण के लिए, यदि हमारे पास एक आयत [4,6] है, तो हम इसे काटकर एक वर्ग प्राप्त कर सकते हैं जिसकी भुजा की लंबाई अधिकतम 4 हो। दिए गए किसी भी आयत से। हमें उन आयतों की संख्या ज्ञात करनी है जिन्हें हम अधिकतम लेन की लंबाई के साथ एक वर्ग बना सकते हैं।
इसलिए, यदि इनपुट रेक्ट =[[6,9], [4,10], [6,13], [17,6]] जैसा है, तो आउटपुट 3 होगा क्योंकि हम पक्षों के सबसे बड़े वर्ग प्राप्त कर सकते हैं [ 6, 4, 6, 6], इसलिए तीन आयतें हैं जो सबसे बड़ी हैं।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
मी:=एक नई सूची
-
रेक्ट में प्रत्येक r के लिए, करें
-
m के अंत में न्यूनतम r डालें
-
-
गिनती (अधिकतम मी) मी और रिटर्न में मौजूद है
उदाहरण (पायथन)
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
def solve(rect): m = [] for r in rect: m.append(min(r)) return m.count(max(m)) rect = [[6,9],[4,10],[6,13],[17,6]] print(solve(rect))
इनपुट
[[6,9],[4,10],[6,13],[17,6]]
आउटपुट
3