ከተሰጠው ምርት ጋር ያጣምሩ


የችግር ደረጃ መካከለኛ
ውስጥ በተደጋጋሚ ተጠየቀ 24 * 7 የፈጠራ ላብራቶሪዎች አማዞን አቫላራ Quora Roblox
ሰልፍ ሃሽ ሒሳብ

ችግሩ “ከተሰጠ ምርት ጋር ይጣመሩ” የሚለው “አንድ” እንደተሰጠ ይገልጻል ኢንቲጀር ደርድር እና ቁጥር “x”። አንድ ድርድር በተሰጠው የግብዓት ድርድር ውስጥ ከ ‹x› ጋር ተመሳሳይ የሆነውን ጥንድ ያካተተ እንደሆነ ይወስኑ ፡፡

ለምሳሌ

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

ማስረጃ

ከተሰጠው ምርት ጋር ያጣምሩ

እዚህ 2 እና 5 ምርታቸው ከ 10 ጋር እኩል ነው ማለትም 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. ያውጅ ሀ ሃሽሴት.
  2. ቢያንስ 2 እሴቶች ከተሰጡ የአደራጁን ርዝመት ያረጋግጡ ፡፡
    1. ካልሆነ ግን ሐሰትን ይመልሱ ፡፡
  3. ቢሆንም እኔ <n.
    1. ከድርድሩ አካላት አንዱ ከ 0 ጋር እኩል መሆኑን ያረጋግጡ
      1. X እንዲሁ 0 ከተሰጠ ከዚያ ወደ እውነት ይመለሱ።
    2. X በማንኛውም የአርአያ አካላት ሊከፋፈል የሚችል መሆኑን ያረጋግጡ እና ቀሪውን 0 ይሰጣል።
      1. HashSet (x / arr [i]) ከያዘ ታዲያ ወደ እውነት ይመለሱ።
      2. Arr [i] ን ወደ HashSet ያክሉ።
  4. ወደ ሐሰት መመለስ

ማስረጃ

ድርድር እና ቁጥር የተሰጠበት ችግር ተሰጥቶናል ፡፡ ከዚያ በግብዓት ድርድር ውስጥ ማንኛውም x ጥንድ ከ x ጋር እኩል የሆነ ምርት መኖሩን ማወቅ አለብን ፡፡ ልንጠቀምበት ነው ማሳከክ ይህንን ችግር ለመፍታት ፡፡ ከተሰጠው ምርት ጋር በአንድ ድርድር ውስጥ ያለውን ዋጋ ለማወቅ። X ን በአር [i] እንካፈላለን እና ቀሪው 0. መሆኑን እናረጋግጣለን 0 ከሆነ ከተገኘ ከዚያ x / arr [i] በ HashSet ውስጥ መኖሩን እናረጋግጣለን። ካለ ያኔ ወደ እውነት እንመለሳለን ፡፡ ካልሆነ ፣ ለቀጣይ ማቋረጫ ያንን አባል ድርድር ወደ HashSet ያክሉ።

እኛ ዜሮ ምርቱን በግልፅ ለማጣራት ሁኔታም ተሰጥቶናል ፡፡ የ x እሴታችን መጠን 0 ከተሰጠ የትኛውም የድርጅት ንጥረ ነገሮች 0. መሆናቸውን እናጣራለን እና ከሆነ ደግሞ በእውነት እንመለሳለን ምክንያቱም ዜሮ በማንኛውም ነገር ተባዝቶ ሁል ጊዜ ዜሮ ነው።

እስቲ አንድ ምሳሌ እንውሰድ እና ይህንን እንረዳ ፡፡

arr [] = {10,20,9,40} ፣ X = 90

i = 0 ፣ arr [i] = 10 ፣

Arr [i] ከ 0 ጋር እኩል እንደሆነ እንፈትሻለን ግን በዚህ ድርድር ውስጥ አንድም ንጥረ ነገር 0 እንኳን ስላልሆነ በማንኛውም ድግግሞሽ አያስፈጽምም ፡፡

እዚህ ላይ x% arr [i] = = 0 ካለፈ እናረጋግጣለን ከዚያ x / arr [i] የተቀመጠ መሆን አለመሆኑን እናረጋግጣለን ፡፡

90% 10 == 0 እውነት ነው እናም 90/10 = 9 ገና በ HashSet ውስጥ የለም።

ስለዚህ arr [i] = 10 ን ወደ ስብስብ እንጨምረዋለን።

90% 20 == 0 ሐሰት ነው ፣ እና ምንም ነገር አይከሰትም

90% 9 == 0 እውነት ነው እናም 90/9 = 10 ቀድሞውኑ በሃሽሴት ውስጥ እንዳስገባነው በ HashSet ውስጥ ይገኛል።

ስለዚህ እንደ አንድ 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” በድርድሩ ውስጥ ያሉት ንጥረ ነገሮች ብዛት ነው። HashSet ን ስለተጠቀምን O (1) ጊዜ ውስጥ ማስገባት ፣ መሰረዝ እና መፈለግ ቻልን ፡፡ በዚህ ምክንያት የመስመር ጊዜ ውስብስብነትን ማሳካት ችለናል ፡፡

የቦታ ውስብስብነት

ሆይ (n) የት “N” በድርድሩ ውስጥ ያሉት ንጥረ ነገሮች ብዛት ነው። ሁሉም ንጥረ ነገሮች በ HashSet ውስጥ ከተከማቹ ከዚያ የ N ውሎች ይኖሩታል። ያ መስመራዊ ቦታ ያስከፍለናል ፡፡ ምክንያቱም ግብዓቱ እየጨመረ ሲሄድ ቦታው ይጨምራል ፡፡