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

पायथन में दिए गए आकार, योग और ऊपरी सीमा के साथ विशिष्ट तत्वों की सरणी बनाना

समस्या विवरण

आकार N, कुल योग SUM, और ऊपरी सीमा K (कोई तत्व K से बड़ा नहीं) दिए गए हैं। सभी तत्व विशिष्ट हों, ऐसी एक सरणी बनाएं। असंभव हो तो -1 वापस करें।

उदाहरण

इनपुट: N = 4, SUM = 16, K = 9

आउटपुट: [1, 2, 4, 9] (योग = 16, सभी ≤9, विशिष्ट)

एल्गोरिदम

  1. न्यूनतम संभव योग: min_sum = N*(N+1)/2 (1+2+...+N)
  2. अधिकतम संभव योग: max_sum = N*K - N*(N-1)/2 (K, K-1, ...)
  3. यदि SUM रेंज से बाहर: -1 वापस करें
  4. res = [0, 1, 2, ..., N] इनिशियलाइज़ करें
  5. sum = min_sum, i = N
  6. जब तक i >= 1:
    • x = sum + (K - i)
    • यदि x < SUM: res[i] = K, sum += K-i, K--
    • अन्यथा: res[i] += SUM - sum, sum = SUM, ब्रेक
    • i--
  7. res वापस करें

पायथन कार्यान्वयन

def get_arr(N, SUM, K):
    min_sum = N * (N + 1) // 2
    max_sum = N * K - N * (N - 1) // 2
    if min_sum > SUM or max_sum < SUM:
        return -1
    res = [i for i in range(N + 1)]
    sum_val = min_sum
    i = N
    while i >= 1:
        x = sum_val + (K - i)
        if x < SUM:
            sum_val += (K - i)
            res[i] = K
            K -= 1
        else:
            res[i] += (SUM - sum_val)
            sum_val = SUM
            break
        i -= 1
    return res

N, SUM, K = 4, 16, 9
print(get_arr(N, SUM, K))

इनपुट

4, 16, 9

आउटपुट

[0, 1, 2, 4, 9]

नोट

आउटपुट में इंडेक्स 0 पर 0 आता है (1-आधारित इंडेक्सिंग के कारण)। वास्तविक सरणी res[1:] है: [1, 2, 4, 9]।

  1. पायथन में दिए गए योग वाले पेयर्स खोजें जैसे कि पेयर एलिमेंट्स अलग-अलग BSTs में हों पायथन में दिए गए योग वाले पेयर्स खोजें जैसे कि पेयर एलिमेंट्स अलग-अलग BSTs में हों

    मान लीजिए हमारे पास दो दिए गए बाइनरी सर्च ट्री हैं और एक और योग दिया गया है; हमें दिए गए योग के संबंध में पेयर्स ढूंढने हैं ताकि प्रत्येक पेयर के एलिमेंट्स अलग-अलग BSTs में हों।तो, यदि इनपुट sum = 12 जैसा हैतो आउटपुट [(6, 6), (7, 5), (9, 3)] होगा।इसे हल करने के लिए, हम निम्नलिखित चरणों का पालन करेंग

  1. - दिए गए पूर्णांक सरणी के सभी विशिष्ट तत्व प्रिंट करने का पायथन प्रोग्राम

    समस्या विवरण एक पूर्णांक सरणी दी गई है। सरणी के तत्व डुप्लिकेट हो सकते हैं। हमारा कार्य विशिष्ट मान प्रदर्शित करना है। उदाहरण इनपुट:: A=[1,2,3,4,2,3,5,6] आउटपुट [1,2,3,4,5,6] एल्गोरिदम सरणी तत्व इनपुट करें। फिर एक-एक करके सभी तत्वों को चुनें। फिर जांचें कि चुना गया तत्व पहले से प्रदर्शित है या न

  1. - दिए गए आकार के समूहों में सरणी को उल्टा करने का पायथन प्रोग्राम

    समस्या विवरण =n तो हम सरणी के सभी तत्वों को उल्टा कर देते हैं। एल्गोरिदम i लूप कंट्रोल वेरिएबल है जिसे 0 से आरंभ किया गया है। व्हाइल लूप का उपयोग करके जांचें कि i, n से कम है या नहीं। यदि हां तो: L = i (बाएं सब सरणी) R = min(i + p - 1, n - 1) (दाएं सब सरणी) व्हाइल लूप का उपयोग करक