मान लीजिए हमारे पास आयतों की एक सूची है जो इसकी लंबाई और चौड़ाई का उपयोग करके दर्शाई गई है। हम किसी भी आयत को 90 डिग्री घुमा सकते हैं ताकि घुमाने के बाद, चौड़ाई लंबाई बन जाए और इसके विपरीत। हमें यह जांचना है कि क्या हम आयतों को चौड़ाई के गैर-बढ़ते क्रम में सॉर्ट कर सकते हैं।
तो, यदि इनपुट rects = [[4, 5], [5, 7], [4, 6]] है, तो आउटपुट True होगा क्योंकि चौड़ाई [5,7,6] हैं अब यदि हम अंतिम दो आयतों को घुमाते हैं तो चौड़ाई [5,5,4] होगी जो गैर-बढ़ते क्रम में है।
हल करने के चरण
- m := 99999
- रेंज 0 से rect के आकार तक के लिए i, करें:
- यदि ith आयत की लंबाई और चौड़ाई का अधिकतम <= m, तो:
- m := ith आयत की लंबाई और चौड़ाई का अधिकतम
- अन्यथा जब ith आयत की लंबाई और चौड़ाई का न्यूनतम <= m:
- m := ith आयत की लंबाई और चौड़ाई का न्यूनतम
- अन्यथा,
- False लौटाएं
- यदि ith आयत की लंबाई और चौड़ाई का अधिकतम <= m, तो:
- True लौटाएं
उदाहरण
def solve(rect):
m = 99999
for i in range(len(rect)):
if max(rect[i][0], rect[i][1]) <= m:
m = max(rect[i][0], rect[i][1])
elif min(rect[i][0], rect[i][1]) <= m:
m = min(rect[i][0], rect[i][1])
else:
return False
return True
rects = [[4, 5], [5, 7], [4, 6]]
print(solve(rects))
इनपुट
[[4, 5], [5, 7], [4, 6]]
आउटपुट
True