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

पायथन में जांचें कि सरणी को दो उप-सरणियों में विभाजित किया जा सकता है जिनके निरपेक्ष अंतर K है


मान लीजिए हमें input_list नामक एक सरणी दी गई है जिसमें पूर्णांक संख्याएं हैं। समस्या यह है कि जांचें कि क्या दी गई सरणी को दो हिस्सों में विभाजित किया जा सकता है, जहां दो हिस्सों के योग का अंतर n के बराबर है। संख्या n पहले से प्रदान की जाएगी।

उदाहरण के लिए, यदि input_list = [9, 2, 5, 6], n = 0 है, तो आउटपुट "Possible" होगा।

हल करने का तरीका

  1. list_total := input_list के मानों का योग
  2. यदि (list_total - n) % 2 == 1, तो "Not Possible" लौटाएं
  3. val := (list_total - n) / 2
  4. temp_sum := 0
  5. सरणी के प्रत्येक तत्व के लिए:
    • temp_sum += input_list[i]
    • यदि temp_sum == val, तो "Possible" लौटाएं
  6. "Not Possible" लौटाएं

तर्क: यदि दो भागों के योग S1 और S2 हैं, तो S1 + S2 = total और |S1 - S2| = n। इससे S1 = (total - n)/2 मिलता है।

उदाहरण

def solve(input_list, n):
    list_total = sum(input_list)
    if (list_total - n) % 2 == 1:
        return "Not Possible"
    val = (list_total - n) / 2
    temp_sum = 0
    for i in range(len(input_list)):
        temp_sum += input_list[i]
        if temp_sum == val:
            return "Possible"
    return "Not Possible"

input_list = [9, 2, 5, 6]
n = 0
print(solve(input_list, n))

इनपुट

[9, 2, 5, 6], 0

आउटपुट

Possible
  1. - पायथन में शतरंज बोर्ड को दो भागों में विभाजित किए बिना अधिकतम कट की संख्या खोजें

    मान लीजिए हमारे पास A x B शतरंज बोर्ड (मैट्रिक्स) है। हमें इस बोर्ड में किए जा सकने वाले अधिकतम कट की संख्या की गणना करनी है ताकि बोर्ड दो भागों में विभाजित न हो। इसलिए, यदि इनपुट A = 2 और B = 4 है, तो आउटपुट 3 होगा। समाधान दृष्टिकोण इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे: res := 0 res

  1. - पायथन में उन योगों को खोजें जिनके लिए ऐरे को समान योग के उप-सरणियों में विभाजित किया जा सकता है

    मान लीजिए हमारे पास पूर्णांकों का एक ऐरे A है। हमें sum के सभी मान ढूंढने हैं ताकि किसी मान sum[i] के लिए ऐरे को उप-सरणियों में विभाजित किया जा सके जिनमें से प्रत्येक का योग sum[i] हो। यदि हम ऐरे को समान योग की उप-सरणियों में विभाजित नहीं कर सकते, तो -1 लौटाएं। इसलिए, यदि इनपुट A = [2, 4, 2, 2, 2,

  1. - पायथन में दो दिए गए ऐरे से सब-अरे खोजें जिनका योग समान हो

    मान लीजिए हमारे पास दो ऐरे P और Q हैं जिनका आकार N है, वे 1 से N तक की संख्याएं रखते हैं। हमें दिए गए ऐरे से सब-अरे ढूंढने हैं ताकि उनका योग समान हो। अंत में ऐसे सब-अरे के इंडेक्स लौटाएं। यदि कोई समाधान नहीं है, तो -1 लौटाएं।तो, यदि इनपुट P = [2, 3, 4, 5, 6], Q = [9, 3, 2, 6, 5] जैसा है, तो आउटपुट ह