ھڪڙي پراڊڪٽ آرري ليس


تڪليف جي سطح وچولو
بار بار پڇڻ ۾ قبول ڪريو ايڊوب Amazon ايپل اسانا ڪاروڪ Bloomberg ByteDance قلعي ڊي شاه eBay Evernote Expedia ڪريو Goldman سيچ گوگل هاز اڳوڻن LinkedIn، ڪني Microsoft جي مارگن Stanley نٿانڪس ناٽڪ Oracle PayPal پيٽرم قوتون Salesforce، SAP سروس Snapchat ڌار ڌار جدول Twitter سليمان وساڻ ويزا VMware والارٽ ليبز ياهو ياندڪس
ڪيريو Groupon ليٽ ڪوڊ

مسئلي جو بيان

ھڪ پراڊڪٽ ۾ صف پہلي جو مسئلو اسان کي هڪ آر تعمير ڪرڻ گهرجي جتي آئونth عنصر آئي ۾ ڏنل عناصر کان سواءِ سمورن عنصرن جي پيداوار هونديth جڳهه.

مثال

پٽ 

5

10 3 5 6 2

پيداوار

180 600 360 300 900

هڪ پراڊڪٽ ارري پہل حل ڪرڻ لاءِ الگورٿم

قدم 1: ویکٹر پروڊڪٽ کي پراڊڪٽس اسٽور ڪرڻ وٺو.
a) ان کي ویکٹر جي پراڊڪٽ جي ذريعي شروع ڪيو

قدم 2: ٻن اشارن کي اڏايو [] ۽ سا [ي [] ، کاٻي شين جي شين جي پيداوار خاني ۾ ith انڊيڪس جي کاٻي پاسي کان. ith اشاري جي حق جي عنصرن جي پيداوار جي دڪان

هڪ. 1 جي کاٻي عنصر کي 1 وانگر ۽ آخري عنصر کي XNUMX جي طور تي درست ڪريو.
ب. کاٻي پاسي کان ڇڏي ڏنل بيت جي صفن جي آئي ٽي عنصرن کي ڇڏي ڏي اي بي جي پراڊڪٽ سان بي ايڊ صف جي پوئين عنصر سان کاٻي آرٽ جي پوئين عنصر سان. (کاٻي [i] = بائیں [i-1] * صف [i-1]). ائين ڪرڻ سان ، اهو محصول ڇڏي ڏنل اگني ۾ پوئين انڊيڪس کان سا arrayي طرف رکيل قطار کان
سي. کان سا ،ي طرف ، ترتيب واري سيون عنصرن جي آئي ٽي عناصر کي اپڊيٽ ڪيو ۽ I array جي عنصر + 1 سان ڏنل صف جي اڳين عنصر سان. (صحيح [i] = صحيح [i + 1] * صف [i + 1]). اھو ڪرڻ سان ، اھو پروڊڪٽ کي درج ٿيل آرڊر کان کاٻي صف ۾ پوئين جڳھ تائين محفوظ رکي ٿو.

قدم 3:  پروڊڪٽ کان سواءِ موجوده عنصر به ساڳيو آهي کاٻي ۽ سا arrي پڪڙ عناصر.
a) پراڊڪٽ صف ٿي ويندي ، پراڊڪٽ [i] = کاٻي [i] * صحيح [i].

هڪ پراڊڪٽ ارري پزل حل ڪرڻ لاءِ وضاحت

سڀ کان پهرين ، صف کان شروعات ڏي ۽ هر اي لاءِ سڀني پوئين عنصرن جي پراڊڪٽ کي اسٽور ڪريو. ھاڻي پوئتي کان قطار کي ٽور ڪريو ۽ آخر تائين رقم کي ذخيرو ڪريو ۽ انھيءَ عنصر کان پوءِ سڀني عنصرن جي پيداوار کي ذخيرو ڪريو.

کاٻي [] = {10 ، 30 ، 150 ، 900 ، 1800}

صحيح [] = {1800 ، 180 ، 60 ، 12 ، 2}

ھاڻي استعمال ڪندي صفن ۾ ڏنل عناصر ۾ سڀني عنصرن جي پيداوار ڳولھيو سواءِ آئيth جڳهه.

پيداوار [] = {180 ، 600 ، 360 ، 300 ، 900}

تي عملدرآمد

هڪ پراڊڪٽ ارري پزل حل ڪرڻ لاءِ سي ++ پروگرام

#include <bits/stdc++.h>
using namespace std;
int main()
{
  
  int n;
  cin>>n;
  int arr[n];
  for(int i=0;i<n;i++)
  {
      cin>>arr[i];
  }
  int left[n],right[n];
  vector<int> product;
  left[0] = 1; //initialize the first element as 1
  for(int i=1;i<n;i++)
  {
     left[i]=left[i-1]*arr[i-1]; // store the product till just previous index
  }
  right[n-1]=1;//initialzie the first element as 1
  for(int i=n-2;i>=0;i--)
  {
     right[i]=right[i+1]*arr[i+1]; //store the product till just next index
  } 
  for(int i=0;i<n;i++)
  {
     product.push_back(left[i]*right[i]);
  }
  for(int i=0;i<n;i++)//display the product array
  {
     cout<<product[i]<<"  "; 
  }
  return 0;
}

جاوا پروگرام هڪ پراڊڪٽ ايري ليڪس حل ڪرڻ لاءِ

import java.util.Arrays;
import java.util.Scanner;
import java.util.Vector;
class sum
{
    public static void main(String[] args)  
    { 
        Scanner sr = new Scanner(System.in);
        int n = sr.nextInt();
        int arr[] = new int[n];
        for(int i=0;i<n;i++)
        {
            arr[i] = sr.nextInt();
        }
        int left[] = new int [n];
        int right[] = new int [n];
        Vector<Integer> product = new Vector<Integer>(); 
        left[0] = 1; //initialize the first element as 1
        for(int i=1;i<n;i++)
        {
           left[i]=left[i-1]*arr[i-1]; // store the product till just previous index
        }
        right[n-1]=1;//initialzie the first element as 1
        for(int i=n-2;i>=0;i--)
        {
           right[i]=right[i+1]*arr[i+1]; //store the product till just next index
        } 
        for(int i=0;i<n;i++)
        {
           product.add(left[i]*right[i]);
        }
        for(int i=0;i<n;i++)//display the product array
        {
           System.out.print(product.get(i)+"  "); 
        }
    }
}
5
10 3 5 6 2
180  600  360  300  900

پيچيدگي تجزيي

وقت جي پيچيدگي

اي (ن) جتي اين صف ۾ موجود عنصرن جو تعداد آهي. هتي اسان صرف 3 ڀيرا جي ڳولا ڪئي ۽ پراڊڪٽ صف کي ڳوليندا آهيون.

خلائي پيچيدگي

اي (ن) ڇاڪاڻ ته اسان عنصرن جي شين کي محفوظ ڪرڻ لاءِ کاٻي ۽ سا arrي بندوبستن کي استعمال ڪندا آهيون.

حوالا