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

पायथन में दी गई ऐरे से लंबाई k की ऐरे ढूंढना जिसकी अनफेयरनेस न्यूनतम हो


मान लीजिए हमारे पास एक ऐरे A और एक और मान k है। हमें A से तत्व लेकर आकार k की एक ऐरे arr बनानी है और अनफेयरनेस को न्यूनतम करना है। यहां अनफेयरनेस की गणना इस फॉर्मूला से की जाती है:

(𝑚𝑎𝑥𝑖𝑚𝑢𝑚 𝑜𝑓 𝑎𝑟𝑟) − (𝑚𝑖𝑛𝑖𝑚𝑢𝑚 𝑜𝑓 𝑎𝑟𝑟)

उदाहरण के लिए, यदि इनपुट है A = [25, 120, 350, 150, 2500, 25, 35] और k = 3, तो आउटपुट होगा 10, क्योंकि हम तत्व [25, 25, 35] ले सकते हैं तो max(arr) = 35 और min(arr) = 25। तो उनका अंतर 10 है।

समाधान दृष्टिकोण

ऐरे को सॉर्ट करें। फिर सभी आकार k की स्लाइडिंग विंडो के लिए, अंतर A[i+k-1] - A[i] की गणना करें और न्यूनतम ट्रैक करें।

  • A को सॉर्ट करें।
  • m = A[n-1] (अधिकतम संभव अंतर) से आरंभ करें।
  • i = 0 से n-k तक लूप करें:
    • m = min(m, A[i+k-1] - A[i]) अपडेट करें।
  • m लौटाएं।

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

def solve(A, k):
    i = 0
    A.sort()
    n = len(A)
    m = A[n-1]
    x = 0
    y = 0
    while i < n - k:
        if A[i+k-1] - A[i] < m:
            m = A[i+k-1] - A[i]
        i += 1
    return m

A = [25, 120, 350, 150, 2500, 25, 35]
k = 3
print(solve(A, k))

इनपुट

[25, 120, 350, 150, 2500, 25, 35]

आउटपुट

10

  1. - Python में दिए गए योग वाले कुछ संख्याओं का गुणनफल खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक संख्या n है, हमें दो या अधिक संख्याएं ढूंढनी हैं जैसे कि उनका योग n के बराबर हो, और इन संख्याओं का गुणनफल अधिकतम हो, हमें गुणनफल ढूंढना है। तो, यदि इनपुट n = 12 जैसा है, तो आउटपुट 81 होगा, क्योंकि 3 + 3 + 3 + 3 = 12 और 3 * 3 * 3 * 3 = 81। इसे हल करने के लिए, हम इन चरणों का

  1. - पायथन में लॉसी रन-लेंथ एन्कोडिंग की न्यूनतम लंबाई खोजने का प्रोग्राम

    मान लीजिए हमारे पास एक लोअरकेस स्ट्रिंग s और एक मान k है। अब एक ऑपरेशन पर विचार करें जहां हम एक स्ट्रिंग पर रन-लेंथ एन्कोडिंग करते हैं जिसमें दोहराए गए क्रमिक वर्णों को एक गिनती और वर्ण के रूप में रखा जाता है। इसलिए यदि स्ट्रिंग aaabbc जैसी है तो इसे 3a2bc के रूप में एन्कोड किया जाएगा। यहां हम c के

  1. - पायथन में दी गई शर्त के साथ सबसे लंबे सबलिस्ट की लंबाई खोजने का प्रोग्राम

    सबलिस्ट का अधिकतम। 6।इसे हल करने के लिए, हम इन चरणों का पालन करेंगे−ret := 0दो डबल एंडेड क्यू minq और maxq परिभाषित करेंl := 0, r := 0जब तक r < nums का आकार, करेंn := nums[r]जब तक minq और n < nums[minq का अंतिम तत्व], करेंminq से अंतिम तत्व हटाएंr को minq के अंत में डालें nums[maxq का अंतिम तत