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

पायथन में सूची को गैर-बढ़ती सूची में बदलने के लिए आवश्यक संचालन की संख्या खोजने के लिए कार्यक्रम

मान लीजिए हमारे पास संख्याओं की एक सूची है जिसे अंक कहा जाता है। अब हम एक संक्रिया पर विचार करते हैं जिसमें हम दो क्रमागत मान लेते हैं और उनका योग लेकर एक मान में मिला देते हैं। हमें आवश्यक संचालनों की न्यूनतम संख्या ज्ञात करनी होगी ताकि सूची गैर-बढ़ती हो।

इसलिए, यदि इनपुट संख्या =[2, 6, 4, 10, 2] की तरह है, तो आउटपुट 2 होगा, क्योंकि हम [2, 6] को [8, 4, 10, 2] प्राप्त करने के लिए मर्ज कर सकते हैं और फिर [12, 10, 2] प्राप्त करने के लिए [8, 4] को मिलाएं।

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

  • अगर अंक खाली हैं, तो

    • वापसी 0

  • अंकों के अंत में −inf डालें

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

  • dp:=आकार N की सूची और 0 से भरें

  • arr :=आकार N की सूची और 0 से भरें

  • p :=गिरफ्तारी का आकार

  • arr[p−1] :=nums[N−1]

  • arr[p−2] :=nums[N−2]

  • एन -3 से 0 की श्रेणी में i के लिए, 1 से घटाएं, करें

    • जे:=मैं

    • एक्स:=अंक [जे]

    • जबकि j

      • जे:=जे + 1

      • एक्स:=एक्स + अंक [जे]

    • dp[i] :=j - i + dp[j + 1]

    • गिरफ्तार [i] :=x

  • वापसी डीपी [0]

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

उदाहरण

class Solution:
   def solve(self, nums):
      if not nums:
         return 0
      nums.append(float("−inf"))
      N = len(nums)
      dp = [0] * N
      arr = [0] * N
      arr[−1] = nums[−1]
      arr[−2] = nums[−2]
      for i in range(N − 3, −1, −1):
         j = i
         x = nums[j]
         while j < N − 1 and x < arr[j + 1]:
            j += 1
            x += nums[j]
         dp[i] = j − i + dp[j + 1]
         arr[i] = x
      return dp[0]
ob = Solution()
nums = [2, 6, 4, 10, 2]
print(ob.solve(nums))

इनपुट

[2, 6, 4, 10, 2]

आउटपुट

2

  1. सूची में सबसे छोटी संख्या खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें सभी सूची दी गई है, हमें सूची में उपलब्ध सबसे छोटी संख्या प्रदर्शित करने की आवश्यकता है यहां हम या तो सूची को क्रमबद्ध कर सकते हैं और सबसे छोटा तत्व प्राप्त कर सकते हैं या सबसे छोटा तत्व प्राप्त करने के लिए अंतर्न

  1. टुपल्स की सूची को डिक्शनरी में बदलने के लिए पायथन प्रोग्राम

    यहाँ एक टपल दिया गया है, हमारा काम टुपल्स को डिक्शनरी में बदलना है। इस समस्या को हल करने के लिए हम डिक्शनरी विधि setdefault () का उपयोग करते हैं। इस विधि में दो पैरामीटर हैं, पहला पैरामीटर को कुंजी में बदलने के लिए और दूसरे को डिक्शनरी के मान में बदलने के लिए। सेटडिफॉल्ट (कुंजी, मान) एक फ़ंक्शन है ज

  1. वर्णों की सूची को एक स्ट्रिंग में बदलने के लिए पायथन प्रोग्राम

    पायथन को इस प्रकार के रूपांतरण की बहुत आवश्यकता होती है। उदाहरण के लिए, ऐसे रूपांतरण क्रमांकन उद्देश्यों के लिए उपयोगी होते हैं। ऐसे रूपांतरण का एक उदाहरण होगा - ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd&