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

Python से टारगेट ऐरे बनाने के लिए मिनिमम फंक्शन कॉल्स कैसे ढूंढें?

ऑपरेशन: (0) इंडेक्स पर +1, (1) पूरे ऐरे को ×2। जीरो ऐरे से टारगेट ऐरे बनाने के लिए मिनिमम ऑपरेशन्स ढूंढें।

एल्गोरिदम

  • प्रत्येक नंबर के लिए: बाइनरी रिप्रेजेंटेशन में 1s की संख्या = इन्क्रीमेंट ऑपरेशन्स।
  • सबसे लंबी बाइनरी लंबाई - 1 = डबल ऑपरेशन्स (सभी एलिमेंट्स पर एक साथ)।
  • टोटल = Σइन्क्रीमेंट्स + मैक्स_डबल्स।

उदाहरण कोड


def solve(nums):
    ans = [0, 0]  # [इन्क्रीमेंट्स, मैक्स_डबल्स]
    for n in nums:
        double = 0
        while n:
            if n % 2 == 0:
                n //= 2
                double += 1
            else:
                n -= 1
                ans[0] += 1
        ans[1] = max(ans[1], double)
    return sum(ans)

# टेस्ट: nums=[1,5,3] -> इन्क्रीमेंट्स=3, मैक्स_डबल्स=4 -> टोटल=7

इनपुट/आउटपुट

इनपुट: [1,5,3]
आउटपुट: 7

  1. रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम रिकर्सिव फंक्शन का उपयोग करके संख्याओं का GCD खोजने का C प्रोग्राम

    समस्या C प्रोग्रामिंग भाषा में रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) खोजें। समाधान रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं के लिए महत्तम सामान्य भाजक (GCD) खोजने का समाधान निम्नानुसार है: एल्गोरिथम रिकर्सिव फंक्शन का उपयोग करके दो दी गई संख्याओं क

  1. Python से बाइनरी ग्रिड में मेजर डायगोनल के ऊपर ज़ीरोज़ के लिए मिनिमम स्वैप्स कैसे ढूंढें? Python से बाइनरी ग्रिड में मेजर डायगोनल के ऊपर ज़ीरोज़ के लिए मिनिमम स्वैप्स कैसे ढूंढें?

    n×n बाइनरी मैट्रिक्स में एडजेसेंट रो स्वैप्स से मेजर डायगोनल के ऊपर सभी एलिमेंट्स 0 करने के लिए मिनिमम स्वैप्स ढूंढें। एल्गोरिदम प्रत्येक रो के लिए राइटमोस्ट 1 की पोजीशन ढूंढें → m[i] = n - j - 1 (डायगोनल से दूरी)। ग्रीडी: i=0 से n-1, ऐसी रो ढूंढें जिसका = n-i-1 हो (यानी डायगोनल के ऊपर 1 न हो)। उसे

  1. - पायथन में सभी A को B से पहले लाने के लिए न्यूनतम डिलीशन गिनने का प्रोग्राम

    केवल A और B से बनी स्ट्रिंग s दी गई है। न्यूनतम कितने वर्ण हटाएं ताकि सभी A सभी B से पहले आ जाएं (यानी स्ट्रिंग A...AB...B रूप में हो)। उदाहरण इनपुट: S = AABAABB आउटपुट: 1 व्याख्या: अंतिम A हटाएं → AABBBB। एल्गोरिदम (प्रीफिक्स-सफिक्स काउंट) a_right = स्ट्रिंग में कुल A की संख्या। b_left = 0, ans