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

पायथन में रेंज सम सपोर्ट करने वाली डेटा स्ट्रक्चर


मान लीजिए हम एक डेटा स्ट्रक्चर विकसित करना चाहते हैं जिसे इंटीजर्स की सूची के साथ बनाया जा सके, और एक फ़ंक्शन हो जो इंडेक्स i से इंडेक्स j-1 तक के एलिमेंट्स का योग कुशल तरीके से ढूंढ सके। दो फ़ंक्शन हैं:

  • कंस्ट्रक्टर जो इंटीजर ऐरे के साथ नया इंस्टेंस बनाता है
  • get_sum(i, j) ऐरे एलिमेंट्स के शुरूआती इंडेक्स i और अंतिम इंडेक्स j-1 तक के इंटीजर्स का योग लौटाता है

उदाहरण के लिए, यदि इनपुट है array = [5,2,3,6,4,7,8,9,3,2], फिर ऑब्जेक्ट obj बनाएं, और फ़ंक्शन कॉल करें obj.get_sum(1,5) और obj.get_sum(4,8), तो आउटपुट क्रमशः 15 और 28 होगा। पहली रेंज के एलिमेंट्स [2,3,6,4] हैं जिनका योग 15 है और दूसरी रेंज के एलिमेंट्स [4,7,8,9] हैं जिनका योग 28 है।

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

  • कंस्ट्रक्टर परिभाषित करें जो array लेता है:
    • sums := एक सूची, शुरुआत में 0 डालें
    • array में प्रत्येक x के लिए:
      • sums के अंत में (x + sums का अंतिम आइटम) डालें
  • get_sum() फ़ंक्शन परिभाषित करें जो i, j लेता है:
    • sums[j] - sums[i] लौटाएं

उदाहरण कोड

class RangeSum:
    def __init__(self, array):
        self.sums = [0]
        for x in array:
            self.sums.append(x + self.sums[-1])
    def get_sum(self, i, j):
        return self.sums[j] - self.sums[i]

array = [5,2,3,6,4,7,8,9,3,2]
obj = RangeSum(array)
print(obj.get_sum(1,5))
print(obj.get_sum(4,8))

इनपुट

[5,2,3,6,4,7,8,9,3,2] obj.get_sum(1,5) obj.get_sum(4,8)

आउटपुट

15 28
  1. पायथन प्रोग्राम: सरणी में इनवर्जन गिनें पायथन प्रोग्राम: सरणी में इनवर्जन गिनें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक लिस्ट दी गई है, हमें आवश्यक इनवर्जन गिनने और प्रदर्शित करने हैं। इनवर्जन काउंट यह गिनकर प्राप्त किया जाता है कि सरणी को क्रमबद्ध करने के लिए कितने चरणों की आवश्यकता है। उदाहरण arr[j]): inv_count += 1 re

  1. पायथन प्रोग्राम: सरणी रोटेशन पायथन प्रोग्राम: सरणी रोटेशन

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें एक टेक्स्ट और एक पैटर्न दिया गया है, हमें पैटर्न और उसके क्रमपरिवर्तन (या एनाग्राम) की सभी घटनाओं को टेक्स्ट में प्रिंट करना है। उदाहरण # अधिकतम मान MAX = 300 # तुलना def compare(arr1, arr2): for i in range(MAX):

  1. पायथन प्रोग्राम: ऐरे का योग ढूंढें पायथन प्रोग्राम: ऐरे का योग ढूंढें

    इस लेख में, हम दिए गए प्रॉब्लम स्टेटमेंट को हल करने के समाधान और दृष्टिकोण के बारे में सीखेंगे। प्रॉब्लम स्टेटमेंट इनपुट के रूप में एक ऐरे दिए जाने पर, हमें दिए गए ऐरे का योग निकालने की आवश्यकता है। यहां हम ब्रूट-फोर्स दृष्टिकोण का पालन कर सकते हैं यानी एक लिस्ट को ट्रैवर्स करना और प्रत्येक एलिमें