मान लीजिए हमारे पास rect नामक एक सरणी है जहां rect[i] में दो तत्व [len_i, wid_i] हैं, जो क्रमशः i-वें आयत की लंबाई और चौड़ाई दर्शाते हैं। अब हम i-वें आयत को काटकर एक वर्ग बना सकते हैं जिसकी भुजा की लंबाई k है यदि k <= len_i और k <= wid_i दोनों हैं। उदाहरण के लिए, यदि हमारे पास आयत [4,6] है, तो हम इसे काटकर अधिकतम 4 की भुजा लंबाई वाला वर्ग प्राप्त कर सकते हैं। अब maxLen नामक एक पैरामीटर पर विचार करें जो दिए गए आयतों में से किसी से प्राप्त होने वाले सबसे बड़े वर्ग की भुजा की लंबाई है। हमें उन आयतों की संख्या ढूंढनी है जिनसे हम maxLen भुजा लंबाई का वर्ग बना सकते हैं।
इसलिए, यदि इनपुट है: rect = [[6,9],[4,10],[6,13],[17,6]], तो आउटपुट 3 होगा क्योंकि हम सबसे बड़े वर्गों की भुजाएं [6, 4, 6, 6] प्राप्त कर सकते हैं, इसलिए तीन आयत हैं जो सबसे बड़े हैं।
हल करने के चरण
- m := एक नई सूची
- rect में प्रत्येक r के लिए: m के अंत में min(r) डालें
- m में max(m) की गिनती गिनें और वापस करें
उदाहरण (Python)
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