د ورکړل شوي محصول سره جوړه کول


مشکل کچه منځني
په مکرر ډول دننه پوښتل کیږي 24 * 7 د بدعت لیبونه ترلاسه کړئ Amazon اویلارا Quora Roblox
پیشه هاش ریاضی

ستونزه "د ورکړل شوي محصول سره جوړه" وايي چې تاسو ته ورکړل شوي ضمیمه سور او یو شمیره "x". معلومول ، ایا یو صف په جوړه کې جوړه جوړه شوې کومه چې په پراخه کچه د ایکس په اندازه په ورکړل شوې آخذه صف کې شتون لري.

بېلګه

[2,30,12,5]
x = 10
Yes, it has Product Pair

تشریح

د ورکړل شوي محصول سره جوړه کول

دلته 2 او 5 هغه عناصر دي چې محصول یې د 10 سره برابر دی x ، x.

[10,30,12,50]
x = 40
No, it does not have a Product Pair.

تشریح

په صف کې هیڅ داسې جوړه نشته چې تولید یې د x سره برابر وي ، لکه 40.

[20,3,12,5]
x = 100
Yes, it has a Product Pair.

تشریح

دلته په صف کې 20 او 5 یو جوړه جوړه کوي چې محصول یې د x سره برابر دی ، 100.

د الګوریتم موندلو لپاره چې د ورکړل شوي محصول سره جوړه جوړه شتون لري

  1. اعلامیه a هش سیټ.
  2. د صف اندازه کول چیک کړئ که لږترلږه 2 ارزښتونه ورکړل شي.
    1. که نه ، غلط بیرته راشئ.
  3. په داسې حال کې i <n.
    1. وګوره که د صفونو یو له عناصرو سره 0 وي
      1. که چیرې x ته هم 0 ورکړل شي ، نو ریښتیا بیرته راشئ.
    2. وګورئ چې ایا ایکس د آر آر د کوم عناصرو لخوا ویشل کیدی شي او پاتې 0 ورکوي.
      1. که چیرې هش سیټ (x / آر آر [i]) ولري ، نو ریښتیا بیرته راستون شئ.
      2. ارش [i] په هشسیټ کې اضافه کړئ.
  4. غلط راستنیدل.

تشریح

موږ ته یوه ستونزه راکړل شوې چې پکې یو صف او یو شمیره ورکړل شوې. بیا موږ باید معلومه کړو چې ایا کوم جوړه په ان پټ صف کې شتون لري کوم چې د x سره برابر محصول لري. موږ کارولو ته ځو ټوپونه د دې ستونزې د حل لپاره. د هغه ارزښت موندلو لپاره چې د ورکړل شوي محصول سره په صف کې شتون لري. موږ ایکس د آرر سره وویشلو [i] او چک کوو چې پاتې یې 0 دی. که وموندل شوه 0 نو بیا به موږ وګورو چې ایا ایکس / آرر [i] په هش سیټ کې شتون لري. که دا شتون ولري نو بیا به موږ ریښتیا راستون شو. که نه ، یوازې د عنصر سرسري لپاره هغه عنصر صف په هاشیسټ کې اضافه کړئ.

موږ ته هم یو شرط ورکړل شوی چې په صفا توګه د صفر محصول معاینه کړي. که زموږ د x ارزښت 0 په توګه ورکړل شي نو موږ به وګورو چې د صفونو کوم عنصر 0 دی. او که دا وي ، نو موږ ریښتیني بیرته راستون شو ځکه چې د هرڅه لخوا صفر ضرب تل صفر وي.

راځئ چې یو مثال واخلو او پدې پوه شو:

تیر [] =، 10,20,9,40،90،XNUMX،XNUMX}، X = XNUMX

i = 0 ، تیر [i] = 10 ،

موږ به وګورو چې آیر [i] د 0 سره مساوي دي مګر پدې صف کې حتی یو عنصر 0 هم ندي ، نو دا به په هیڅ تیرید کې اجرا نشي.

موږ به دلته یوازې دا وګورو چې x٪ آرر [i] = = 0 که دا تیریږي نو بیا به یې وګورو چې x / آرر [i] په ترتیب کې دی که نه.

90 10 0 == 90 رښتیا دی او 10/9 = XNUMX لاهم په هش سیټ کې ندی.

نو موږ به ارار [i] = 10 په سیټ کې اضافه کړو.

90٪ 20 == 0 دروغ دی ، او هیڅ نه پیښیږي

90٪ 9 == 0 ریښتیا ده او 90/9 = 10 په هش سیټ کې شتون لري لکه څنګه چې موږ دمخه په هشسیټ کې داخل کړی.

نو دا پدې مانا ده چې موږ د 9 او 10 په څیر د محصول جوړه جوړه کوو او ریښتیني او پرنټونه یې بیرته راوړو

محصول: "هو ، دا د محصول جوړه لري".

د ورکړل شوي محصول امازون سره جوړه جوړه کولو لپاره C ++ کوډ

#include<iostream>
#include<unordered_set>
using namespace std;
bool getProduct (int arr[], int n, int x)
{
  if (n < 2)
    return false;

  unordered_set<int> s;

  for (int i=0; i<n; i++)
  {
    if (arr[i] == 0)
    {
    if (x == 0)
      return true;
    else
      continue;
    }
    if (x%arr[i] == 0)
    {
      if (s.find(x/arr[i]) != s.end())
                return true;

      s.insert(arr[i]);
    }
  }
  return false;
}
int main()
{
  int arr[] = {10, 20, 9, 40};
  int x = 90;
  int n = sizeof(arr)/sizeof(arr[0]);
  getProduct (arr, n, x)? cout << "Yes, it has Product Pair\n":cout << "No, it does not have Product Pair";
  return 0;
}
Yes, it has Product Pair

د ورکړل شوي محصول سره جوړه جوړه موندلو لپاره جاوا کوډ

import java.util.HashSet;

class pairX
{
    public static boolean getProduct (int arr[], int n, int x)
    {
        HashSet<Integer> mySet = new HashSet<>();

        if(n < 2)
            return false;

        for(int i = 0; i < n; i++)
        {
            if(arr[i] == 0)
            {
                if(x == 0)
                    return true;
                else
                    continue;
            }
            if(x % arr[i] == 0)
            {
                if(mySet.contains(x / arr[i]))
                    return true;

                mySet.add(arr[i]);
            }
        }
        return false;
    }
    public static void main(String[] args)
    {
        int arr[] = {10, 20, 9, 40};
        int x = 90;
        int n = arr.length;

        if(getProduct (arr, n, x))
            System.out.println("Yes, it has Product Pair");
        else
            System.out.println("No, it does not have Product Pair");
    }
}
Yes, it has Product Pair

د پیچلتیا تحلیل

د وخت پیچلتیا

اې (N) هلته "n" په صف کې د عناصرو شمیر دی. له هغه ځایه چې موږ هش سیټ کارولی دی ، نو موږ د O (1) وخت کې دننه کول ، حذف کولو او لټون کولو توان درلود. د دې له امله موږ وکولی شو د خطي وخت پیچلتیا ترلاسه کړو.

د ځای پیچلتیا

اې (N) هلته "n" په صف کې د عناصرو شمیر دی. که ټول عناصر به په هش سیټ کې زیرمه شي ، نو دا به د N شرایط ولري. دا به زموږ لپاره خطي ځای ولګوي. ځکه چې لکه څنګه چې ننوتلو ځای زیاتیږي.