ကုန်ပစ္စည်း Array ပဟေ.ိ  


ခက်ခဲအဆင့် အလယ်အလတ်
မကြာခဏမေးတယ် တိကျသော Adobe က အမေဇုံ Apple Asana ဟာ BlackRock ဘလွန်းဘာ့ဂ် ByteDance Citadel DE ရှော ကို eBay Evernote Expedia Facebook က Goldman Sachs Google Houzz Intel က LinkedIn တို့ lyft Microsoft က မော်ဂန်စတန်လေ Nutanix တေးသံစုံကဇါတ် Oracle က PayPal က Paytm Qualtrics Salesforce သည် SAP ServiceNow Snapchat Splunk စားပှဲ တွစ်တာ Uber ဗီဇာ VMware က Walmart ဓာတ်ခွဲခန်းများ Yahoo က Yandex
အခင်းအကျင်း Groupon LeetCode

ပြProbleနာဖော်ပြချက်  

ထုတ်ကုန်၌တည်၏ အခင်းအကျင်း puzzle ပြproblemနာth element က i မှာရှိတဲ့ element ကလွဲလို့ပေးထားတဲ့ခင်းကျင်းခြင်းထဲက element အားလုံးရဲ့ထုတ်ကုန်ဖြစ်လိမ့်မယ်th အနေအထား။

နမူနာ  

input 

5

10 3 5 6 2

output

180 600 360 300 900

Product Array Puzzle ကိုဖြေရှင်းရန်အတွက် Algorithm  

အဆင့် 1: ထုတ်ကုန်သိုလှောင်ရန် vector ထုတ်ကုန်ယူပါ။
က) က vector ထုတ်ကုန်အားဖြင့်ကန ဦး

အဆင့် 2: left [] နှင့် right [] တို့ကို left နှစ်ခု Array ကိုတည်ဆောက်ပါ။ left ၏ element များထုတ်ကုန်ကို array အတွင်းရှိ iith index ၏ဘယ်ဘက်အထိသိုလှောင်ထားပါ။ ညာဘက်ဒသမဒြပ်စင်၏ဒြပ်စင်၏ထုတ်ကုန်ပိုင်ခွင့်။

က။ ဘယ်ဘက်၏ပထမ ဦး ဆုံး element ကို 1 အဖြစ်ပထမနှင့်ညာဘက်၏နောက်ဆုံး element ကို 1 အဖြစ်အစပြုပါ။
ခ။ ဘယ်ဘက်မှဘယ်ဘက်ခင်းကျင်း၏ i i element များကိုလက်ဝဲခင်းကျင်း၏ယခင်ဒြပ်စင်နှင့်အတူပေးထားသောခင်းကျင်း၏ i-1 ဒြပ်စင်၏ထုတ်ကုန်ဖြင့်အပ်ဒိတ်လုပ်ပါ။ (left [i] = left [i-1] * ခင်းကျင်း [i-1]) ။ ဒီလိုလုပ်ခြင်းအားဖြင့်၊ ထုတ်ကုန်ကိုပေးထားတဲ့ခင်းကျင်းထဲက left left မှာယခင် index ကိုမရောက်မှီတိုင်အောင်သိုလှောင်ထားတယ်။
ဂ။ ညာဘက်မှ, ညာဘက်ခင်းကျင်း၏ i-element တွေကိုဒြပ်စင်ညာဘက်ခင်းကျင်း၏နောက်ဒြပ်စင်နှင့်အတူပေးထားခင်းကျင်း၏ i + 1 th ဒြပ်စင်၏ထုတ်ကုန်နှင့်အတူ update ။ (ညာ [i] = ညာဘက် [i + 1] * ခင်းကျင်းခြင်း [i + 1]) ။ ဒီလိုလုပ်ခြင်းအားဖြင့်၊ ထုတ်ကုန်ကိုပေးထားတဲ့ခင်းကျင်းထဲက left left မှာယခင် index ကိုမကုန်မှီတိုင်အောင်သိုလှောင်ထားသည်။

လည်းကြည့်ရှုပါ
Array ကို Zig-Zag ဖက်ရှင်အဖြစ်ပြောင်းပါ

အဆင့် 3:  ပစ္စုပ္ပန်ဒြပ်စင်မှအပကျန်ထုတ်ကုန်များသည်လက်ဝဲနှင့်လက်ဝဲဘက်ရှိ Array element များ၏ထုတ်ကုန်နှင့်အတူတူဖြစ်သည်။
က) ထုတ်ကုန်ခင်းကျင်းခြင်းသည်ကုန်ပစ္စည်း [i] = ဘယ်ဘက် [i] * right [i] ဖြစ်သည်။

Product Array Puzzle အတွက်ဖြေရှင်းနည်း  

ပထမတစ်ခုအနေဖြင့် Array ကိုအစမှ ဖြတ်၍ i တစ်ခုချင်းစီအတွက် product များကိုသိမ်းထားပါ။ နောက်ကျောက array ကိုဖြတ်ပြီး sum ကိုအဆုံးကနေသိုလှောင်ပြီး element ရဲ့ product ကိုသိမ်းပါ။

လက်ဝဲ [] = {၁၀၊ ၃၀၊ ၁၅၀၊ ၉၀၀၊ ၁၈၀၀}

ညာဘက် [] = {1800, 180, 60, 12, 2}

အခုဒီ array ကိုသုံးပြီး i မှာရှိတဲ့ element မှလွဲ၍ ပေးထားတဲ့ array ထဲရှိ element အားလုံးရဲ့ product ကိုရှာပါth အနေအထား။

ထုတ်ကုန် [] = {180, 600, 360, 300, 900}

အကောင်အထည်ဖော်ရေး  

Product Array Puzzle ကိုဖြေရှင်းရန် C ++ Program

#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;
}

Product Array Puzzle ကိုဖြေရှင်းရန်အတွက် Java Program

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

ရှုပ်ထွေးဆန်းစစ်ခြင်း  

အချိန်ရှုပ်ထွေး

လည်းကြည့်ရှုပါ
သစ်ပင်နှစ်ပင်နှင့်တူညီမှုရှိမရှိဆုံးဖြတ်ရန်ကုဒ်ရေးပါ

အို (ဎ) အဘယ်မှာ n n ခင်းကျင်းအတွက်ပစ္စုပ္ပန် element များ၏နံပါတ်ဖြစ်ပါတယ်။ ဒီမှာ 3 ကြိမ်သာကုန်ဆုံးပြီးကုန်ကြမ်းခင်းကိုရှာတယ်။

အာကာသရှုပ်ထွေးမှု

အို (ဎ) ဘာလို့လဲဆိုတော့ကျွန်တော်တို့ဟာ element တွေရဲ့ထုတ်ကုန်တွေကိုသိမ်းဖို့ဘယ်ဖက်နဲ့ညာ Array ကိုသုံးတယ်။

ကိုးကား