मान लीजिए हमारे पास वजन नामक संख्याओं की एक सूची है जो लोगों के वजन का प्रतिनिधित्व कर रही है और एक मूल्य सीमा एक रॉकेट जहाज की वजन सीमा निर्धारित करती है। अब प्रत्येक रॉकेटशिप अधिकतम दो लोगों को ले जा सकती है। हमें ग्रह पर सभी को बचाने के लिए रॉकेट जहाजों की न्यूनतम संख्या का पता लगाना होगा।
इसलिए, यदि इनपुट वज़न की तरह है =[300, 400, 300], सीमा =600, तो आउटपुट 2 होगा, क्योंकि यह दो लोगों को लेने के लिए एक रॉकेट जहाज लेगा, जिनका वजन 300 प्रत्येक है, और दूसरा लेने के लिए वह व्यक्ति जिसका वजन 400 है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
सूची भार क्रमबद्ध करें
-
सीएनटी:=0
-
जबकि वज़न खाली नहीं है, करें
-
x :=वज़न से अंतिम तत्व हटाएं
-
अगर वज़न खाली नहीं है और वज़न [0] <=सीमा - x, तो
-
वज़न से पहला तत्व हटाएं
-
-
सीएनटी:=सीएनटी + 1
-
-
वापसी सीएनटी
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण (पायथन)
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