Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python में ट्रक पर रखे जा सकने वाले अधिकतम यूनिट खोजें

मान लीजिए हमारे पास बॉक्स का एक सेट है जिसे boxTypes नामक 2D सरणी द्वारा दर्शाया गया है, जहां boxTypes[i] में दो तत्व [प्रकार i के बॉक्स की संख्या, प्रकार i के प्रति बॉक्स यूनिट की संख्या] हैं। अब हमारे पास एक और मान k है, जो ट्रक पर रखे जा सकने वाले बॉक्स की अधिकतम संख्या है। हम ट्रक पर रखने के लिए किसी भी बॉक्स का चयन कर सकते हैं जब तक कि बॉक्स की संख्या k से अधिक न हो। हमें ट्रक पर रखे जा सकने वाले यूनिट की अधिकतम कुल संख्या ढूंढनी है।

इसलिए, यदि इनपुट है: boxTypes = [[2,4],[3,3],[4,2]], k = 6, तो आउटपुट 19 होगा, क्योंकि:

  • प्रकार 1 के 2 बॉक्स और प्रत्येक में 4 यूनिट
  • प्रकार 2 के 3 बॉक्स और प्रत्येक में 3 यूनिट
  • प्रकार 3 के 4 बॉक्स और प्रत्येक में 2 यूनिट

चूंकि k = 6, हम प्रकार 1 और 2 के सभी बॉक्स ले सकते हैं, और प्रकार 3 का केवल एक बॉक्स, इसलिए (2*4) + (3*3) + 2 = 8 + 9 + 2 = 19 आइटम होंगे।

हल करने के चरण

  1. boxTypes को प्रति बॉक्स यूनिट की संख्या के आधार पर सॉर्ट करें (अवरोही क्रम)
  2. total := 0, fill := 0
  3. boxTypes में प्रत्येक i के लिए:
    • यदि fill + i[0] <= k, तो: fill += i[0], total += i[0] * i[1]
    • अन्यथा: total += (k - fill) * i[1], लूप से बाहर निकलें
  4. total वापस करें

उदाहरण (Python)

def solve(boxTypes, k):
    boxTypes.sort(key=lambda x: x[1], reverse=True)
    total = 0
    fill = 0
    for i in boxTypes:
        if fill + i[0] <= k:
            fill += i[0]
            total += i[0] * i[1]
        else:
            total += (k - fill) * i[1]
            break
    return total

boxTypes = [[2,4],[3,3],[4,2]]
k = 6
print(solve(boxTypes, k))

इनपुट

[[2,4],[3,3],[4,2]], 6

आउटपुट

19
  1. - पायथन में हम खुश कर सकने वाले लोगों की अधिकतम संख्या खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक सूची customers और दूसरी सूची mood है, ये दोनों समान लंबाई के हैं, हमारे पास एक और पूर्णांक k भी है। अब प्रत्येक मिनट i पर, customers[i] संख्या में लोग स्टोर पर आते हैं और जब mood[i] = 1, तो यह दर्शाता है कि ग्राहक खुश हैं और जब mood[i] = 0, तो वे दुखी हैं। हम mood के आकार k के

  1. - पायथन में होल्ड और सेल करके अधिकतम लाभ खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, जो एक कंपनी के स्टॉक की कीमतों को कालानुक्रमिक क्रम में दर्शाती है। हम प्रति दिन अधिकतम एक शेयर खरीद सकते हैं, लेकिन आप कई स्टॉक रख सकते हैं और किसी भी संख्या में दिनों में स्टॉक बेच सकते हैं। आपके द्वारा अर्जित किए जा सकने वाले अधिकतम लाभ को लौट

  1. Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें Python में इमारतों की अधिकतम ऊंचाई ज्ञात करें

    n इमारतें एक पंक्ति में (1 से n लेबल)। प्रतिबंध: restrictions[i] = (id, max_height)। नियम: ऊंचाई ≥ 0, पहली इमारत की ऊंचाई = 0, आसन्न इमारतों में ऊंचाई अंतर ≤ 1। अधिकतम संभव ऊंचाई खोजें। एल्गोरिदम: दो पास + शिखर गणना प्रतिबंधों को id द्वारा सॉर्ट करें फॉरवर्ड पास: बाएं से दाएं, प्रत्येक प्रतिबंध को