मान लीजिए हमारे पास weights नामक संख्याओं की एक सूची है जो लोगों के वजन को दर्शाती है और एक मान limit जो एक रॉकेट जहाज की वजन सीमा निर्धारित करता है। अब प्रत्येक रॉकेटशिप अधिकतम दो लोगों को ले जा सकती है। हमें सभी को ग्रह पर बचाने के लिए आवश्यक न्यूनतम रॉकेट जहाजों की संख्या ढूंढनी है।
इसलिए, यदि इनपुट weights = [300, 400, 300], limit = 600 जैसा है, तो आउटपुट 2 होगा, क्योंकि 300 वजन वाले दो लोगों को ले जाने के लिए एक रॉकेट जहाज लगेगा, और 400 वजन वाले व्यक्ति के लिए दूसरा।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे −
सूची weights को सॉर्ट करें
cnt := 0
जब तक weights खाली नहीं है, करें
x := weights से अंतिम तत्व हटाएं
यदि weights खाली नहीं है और weights[0] <= limit - x, तो
weights से पहला तत्व हटाएं
cnt := cnt + 1
cnt वापस करें
बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें −
उदाहरण (पायथन)
class Solution: def solve(self, weights, limit): weights.sort() cnt = 0 while weights: x = weights.pop() if weights and weights[0] <= limit - x: weights.pop(0) cnt += 1 return cnt ob = Solution() weights = [300, 400, 300] limit = 600 print(ob.solve(weights, limit))
इनपुट
[300, 400, 300], 600
आउटपुट
2