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

पायथन का उपयोग करके सॉर्ट किए गए सबअरे योगों की श्रेणी योग खोजने का कार्यक्रम

मान लीजिए कि हमारे पास n सकारात्मक तत्वों के साथ एक सरणी संख्या है। यदि हम संख्याओं के सभी गैर-रिक्त सन्निहित उप-सरणियों के योग की गणना करते हैं और फिर उन्हें n*(n+1)/2 संख्याओं की एक नई सरणी बनाकर, गैर-घटते फैशन में क्रमबद्ध करते हैं। हमें नए एरे में इंडेक्स बाएं से इंडेक्स राइट (1-इंडेक्स) तक की संख्याओं का योग निकालना है। उत्तर बहुत बड़ा हो सकता है इसलिए वापसी परिणाम मॉड्यूल 10^9 + 7.

इसलिए, यदि इनपुट अंकों की तरह है =[1,5,2,6] बाएँ =1 दाएँ =5, तो आउटपुट 20 होगा क्योंकि यहाँ सभी सबअरे योग 1, 5, 2, 6, 6, 7, 8 हैं। , 8, 13, 14, इसलिए छँटाई के बाद, वे [1,2,5,6,6,7,8,8,13,14] हैं, सूचकांक 1 से 5 तक के तत्वों का योग 1+5+2 है +6+6 =20.

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -

  • मी :=10^9 + 7

  • n :=अंकों का आकार

  • a:=एक नई सूची

  • मैं के लिए 0 से n -1 की सीमा में, करो

    • j के लिए I से n-1 की श्रेणी में, करें

      • अगर मैं j के समान हूं, तो


        • एक के अंत में nums[j] डालें
      • अन्यथा,

        • ए के अंत में ((अंक [जे] + ए का अंतिम तत्व) मॉड एम) डालें

  • सूची को क्रमबद्ध करें एक

  • sm:=a के सभी तत्वों का योग [सूचकांक बाएँ-1 से दाएँ])

  • वापसी एसएम मॉड एम

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

उदाहरण

def solve(nums, left, right):
   m = 10**9 + 7
   n = len(nums)
   a=[]
   for i in range(n):
      for j in range(i,n):
         if i==j:
            a.append(nums[j])
         else:
            a.append((nums[j]+a[-1])%m)
   a.sort()
   sm=sum(a[left-1:right])
   return sm % m
nums = [1,5,2,6]
left = 1
right = 5
print(solve(nums, left, right))

इनपुट

[1,5,2,6], 1, 5

आउटपुट

20

  1. पायथन में एक सूची के गैर-आसन्न तत्वों का सबसे बड़ा योग खोजने का कार्यक्रम

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

  1. पायथन में एक क्रमबद्ध सूची में प्रत्येक जोड़ी के पूर्ण अंतर का योग खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास क्रमबद्ध संख्याओं की एक सूची है जिसे अंक कहा जाता है, हमें दी गई सूची में संख्याओं के प्रत्येक जोड़े के बीच पूर्ण अंतर का योग ज्ञात करना है। यहां हम विचार करेंगे (i, j) और (j, i) अलग-अलग जोड़े हैं। यदि उत्तर बहुत बड़ा है, तो परिणाम को 10^9+7 से संशोधित करें। इसलिए, यदि इनपुट

  1. पायथन में सभी सन्निहित उपन्यासकारों के योग का योग खोजने का कार्यक्रम

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