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

पायथन में स्वयं को छोड़कर सरणी का उत्पाद

मान लीजिए कि हमारे पास n पूर्णांकों की संख्या नामक एक सरणी है जहां n> 1. हमें एक सरणी आउटपुट ढूंढना है जैसे कि आउटपुट [i] अंक [i] को छोड़कर संख्याओं के सभी तत्वों के उत्पाद के बराबर है। तो अगर इनपुट ऐरे [1,2,3,4] है, तो आउटपुट [24,12,8,6] होगा। हमें इसे डिवीजन ऑपरेटर का उपयोग किए बिना हल करना होगा।

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

  • right_mul :=अंकों के समान आकार की एक सरणी, इसे 0 से भरें
  • right_mul का अंतिम तत्व =अंकों का अंतिम तत्व
  • i के लिए 1 से लेकर अंकों की लंबाई तक
    • right_mul[अंकों की लंबाई - i - 1] =right_mul [अंकों की लंबाई - i] * अंक [अंकों की लंबाई - i - 1]
  • आउटपुट:=अंकों के समान आकार की एक सरणी, इसे 0 से भरें
  • उपसर्ग:=1, और अनुक्रमणिका:=0
  • जबकि इंडेक्स <आउटपुट की लंबाई - 1
    • आउटपुट [इंडेक्स] :=प्रीफ़िक्स * राइट_मुल [इंडेक्स + 1]
    • उपसर्ग:=उपसर्ग * अंक [सूचकांक]
    • सूचकांक :=अनुक्रमणिका + 1
  • आउटपुट का अंतिम तत्व:=उपसर्ग
  • रिटर्न आउटपुट

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

उदाहरण

class Solution(object):
   def productExceptSelf(self, nums):
      right_multiply = [0] * len(nums)
      right_multiply[-1]=nums[-1]
      for i in range(1,len(nums)):
         right_multiply[len(nums)-i-1] = right_multiply[len(nums)-i] * nums[len(nums)-i-1]
      output = [0]*len(nums)
      prefix = 1
      current_index = 0
      while current_index < len(output)-1:
         output[current_index] = prefix * right_multiply[current_index+1]
         prefix *= nums[current_index]
         current_index +=1
      output[-1] = prefix
      return output
ob1 = Solution()
print(ob1.productExceptSelf([1,3,5,7,9]))

इनपुट

[1,3,5,7,9]

आउटपुट

[945, 315, 189, 135, 105]

  1. पायथन में ऐरे घुमाएँ

    मान लीजिए कि हमारे पास एक सरणी A है। हमें इसे k चरणों में घुमाना है। तो अगर सरणी ए =[5, 7, 3, 6, 8, 1, 5, 4], और के =3 है, तो आउटपुट [1,5,4,5,7,3,6] होगा। 8]. कदम इस प्रकार हैं [4,5,7,3,6,8,1,5] [5,4,5,7,3,6,8,1] [1,5,4,5,7,3,6,8] इसे हल करने के लिए, हम इन चरणों का पालन करेंगे। चलो n सरणी का आका

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

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

  1. पायथन में डायनेमिक ऐरे का कार्यान्वयन

    डायनामिक ऐरे पायथन में, एक सूची, सेट और शब्दकोश परिवर्तनीय वस्तुएं हैं। जबकि संख्या, स्ट्रिंग और टपल अपरिवर्तनीय वस्तुएं हैं। म्यूटेबल ऑब्जेक्ट्स का मतलब है कि हम सूची, सेट या डिक्शनरी से आइटम जोड़ते/हटाते हैं, हालांकि अपरिवर्तनीय वस्तुओं जैसे टपल या स्ट्रिंग्स के मामले में यह सच नहीं है। पायथन मे