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

पायथन में ऐरे ज़िगज़ैग बनाने के लिए तत्वों को घटाएं


मान लीजिए कि हमारे पास पूर्णांकों की एक सरणी संख्या है, एक चाल ऑपरेशन वास्तव में किसी भी तत्व को चुन रहा है और इसे 1 से घटा रहा है। एक सरणी ए एक ज़िगज़ैग सरणी है यदि 1 या 2 संतुष्ट है -

  • प्रत्येक सम-अनुक्रमित तत्व आसन्न तत्वों से बड़ा है, इसलिए। ए [0]> ए [1] <ए [2]> ए [3] <ए [4]> ... और इसी तरह।

  • प्रत्येक विषम-अनुक्रमित तत्व आसन्न तत्वों से बड़ा है, इसलिए। ए [0] <ए [1]> ए [2] <ए [3]> ए [4] <... और इसी तरह।

हमें दिए गए एरे नंबर्स को ज़िगज़ैग एरे में बदलने के लिए न्यूनतम संख्या में मूव्स खोजने होंगे।

तो अगर सरणी [1,2,3] की तरह है, तो आउटपुट 2 होगा, क्योंकि हम 2 से 0 या 3 से 1 तक घटा सकते हैं।

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

  • हल () नामक एक विधि को परिभाषित करें, इसमें अंक लगेंगे और शुरू हो जाएगा, यह नीचे की तरह काम करेगा -

  • कश्मीर:=0

  • के लिए मैं सीमा में अंकों की लंबाई शुरू करने के लिए, 2 से बढ़ाएँ

    • बायां:=100000 जब मैं - 1 <0, अन्यथा अंक [i - 1]

    • दाएं:=100000 जब i + 1>=अंकों की लंबाई, अन्यथा अंक [i + 1]

    • अस्थायी:=(न्यूनतम बाएँ और दाएँ) – 1 – अंक[i]

    • यदि अस्थायी <0, तो k :=k + |temp|

  • वापसी कश्मीर

  • मुख्य विधि में, यह होगा

  • उत्तर:=हल करें (अंक, 0)

  • उत्तर:=न्यूनतम उत्तर और हल करें(अंक, 1)

  • वापसी उत्तर

उदाहरण (पायथन)

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

class Solution(object):
   def solve(self,nums,start):
      k = 0
      for i in range(start,len(nums),2):
         left = 100000 if i-1<0 else nums[i-1]
         right = 10000 if i+1>=len(nums) else nums[i+1]
         temp= (min(left,right)-1 - nums[i])
         if temp<0:
            k+=abs(temp)
      return k
   def movesToMakeZigzag(self, nums):
      ans = self.solve(nums,0)
      ans = min(ans,self.solve(nums,1))
      return ans
ob = Solution()
print(ob.movesToMakeZigzag([1,2,3]))

इनपुट

[1,2,3]

आउटपुट

2

  1. पायथन में सभी सरणी तत्वों को समान बनाने के लिए आवश्यक संचालन की संख्या

    हमने तत्वों की एक सरणी दी है, और हमें तत्वों को 1 से बढ़ाकर उन सभी को समान बनाना है। हमें प्रत्येक चरण में n - 1 तत्व को बढ़ाने की अनुमति है। हमारा लक्ष्य सभी सरणी तत्वों को समान बनाने के लिए आवश्यक संचालन की कुल संख्या की गणना करना है। उदाहरण के लिए, यदि आप सूची [1, 2, 3] लेते हैं, तो सभी तत्वों को

  1. पायथन में एक सरणी में अलग-अलग तत्वों की गणना करें

    पायथन में एक सूची में हमारे पास डुप्लिकेट तत्व हो सकते हैं। जब हम सूची की लंबाई की गणना करते हैं तो हमें डुप्लिकेट तत्वों सहित कुल लंबाई मिलती है। लेकिन इस लेख में हम देखेंगे कि किसी सूची में विशिष्ट तत्वों या अद्वितीय तत्वों की कुल संख्या कैसे प्राप्त करें। उदाहरण नीचे के उदाहरण में हम संग्रह मॉड्

  1. द्विभाजित - पायथन में सरणी द्विभाजन एल्गोरिथ्म

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