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

Python में योग को P से विभाज्य बनाने का प्रोग्राम


मान लीजिए हमारे पास एक ऐरे nums और एक मान p है, हम सबसे छोटा सबऐरे (पूरा ऐरे नहीं) हटाते हैं ताकि शेष मानों का योग p से विभाज्य हो। हमें हटाने के लिए आवश्यक सबसे छोटे सबऐरे की लंबाई ढूंढनी है, यदि ऐसा कोई सबऐरे नहीं है तो -1 वापस करें।

उदाहरण के लिए, यदि इनपुट है nums = [8,2,6,5,3], p = 7, तो आउटपुट 1 होगा क्योंकि यदि हम 3 हटाते हैं, तो कुल योग 21 होगा जो 7 से विभाज्य है।

समाधान के चरण

  1. ans := infinity
  2. s := sum(nums) % p
  3. d := {0: -1} (कुंजी-मान जोड़ी वाला मैप)
  4. cum := 0
  5. यदि s == 0:
    • 0 वापस करें
  6. i को 0 से len(nums)-1 तक:
    • cum += nums[i]
    • r := cum % p
    • यदि (r-s)%p d में मौजूद है:
      • ans := min(ans, i - d[(r-s)%p])
    • d[r] := i
  7. ans if ans < len(nums) else -1 वापस करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

def solve(nums, p):
    ans = float("inf")
    s = sum(nums) % p
    d = {0: -1}
    cum = 0
    if s == 0:
        return 0
    for i in range(len(nums)):
        cum += nums[i]
        r = cum % p
        if (r - s) % p in d:
            ans = min(ans, i - d[(r - s) % p])
        d[r] = i
    return ans if ans < len(nums) else -1

nums = [8,2,6,5,3]
p = 7
print(solve(nums, p))

इनपुट

[8,2,6,5,3], 7

आउटपुट

1
  1. - पायथन में सूची के गैर-आसन्न तत्वों का अधिकतम योग खोजने का प्रोग्राम

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, हमें एक फ़ंक्शन परिभाषित करना है जो गैर-आसन्न संख्याओं का अधिकतम योग लौटाता है। यहां संख्याएं 0 या नकारात्मक भी हो सकती हैं। उदाहरण के लिए, यदि इनपुट [3, 5, 7, 3, 6] है, तो आउटपुट 16 होगा, क्योंकि हम 3, 7, और 6 लेकर 16 प्राप्त कर सकते हैं। इसे हल

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

    मान लीजिए हमारे पास nums नामक संख्याओं की एक सूची है, अब हर सन्निकट सबअरे पर विचार करें। इनमें से प्रत्येक सबअरे का योग करें और इन सभी मानों का योग लौटाएं। अंत में, परिणाम को 10**9 + 7 से मोड करें। उदाहरण के लिए, यदि इनपुट है nums = [3, 4, 6], तो आउटपुट होगा 43, क्योंकि हमारे पास निम्नलिखित सबअरे ह

  1. पायथन में भारतीय झंडा बनाने का प्रोग्राम पायथन में भारतीय झंडा बनाने का प्रोग्राम

    ग्राफ बनाने के लिए पायथन की लाइब्रेरीज़ में बहुत व्यापक विशेषताएं हैं जो न केवल हमें चार्ट देती हैं बल्कि झंडे जैसे अन्य डायग्राम बनाने की सुविधा भी देती हैं। उस अर्थ में उन मॉड्यूल्स में एक कलात्मक स्पर्श होता है। इस लेख में हम देखेंगे कि numpy और matplotlib लाइब्रेरीज़ का उपयोग करके भारतीय झंडा कै