ציילן פּאָר מיט גיווען סאַם  


שוועריקייט לעוועל גרינג
אָפט געבעטן אין אַקקאָליטע אַמאַזאָן פאַקסעט שפּאַציר
מענגע האַשינג מאַט סאָרטינג

אין פּראָבלעם "ציילן פּאָר מיט געגעבן סומע" מיר האָבן געגעבן אַ ינטאַדזשער מענגע[] און אן אנדער נומער זאגט 'סומע', איר האָבן צו באַשליסן צי איינער פון די צוויי עלעמענטן אין אַ געגעבן מענגע האט אַ סומע גלייַך צו "סומע".

בייַשפּיל  

ינפּוט:

אַרר [] = {1,3,4,6,7} און סומע = 9.

אָוטפּוט:

“עלעמענטן געפֿונען מיט דער געגעבן סאַכאַקל ווי עס זענען '3' און '6' וואָס איז סומע גלייַך צו '9'.

ינפּוט:

אַרר [] = {11,3,5,7,10} און סומע = 20.

אָוטפּוט:

"עלעמענטן ניט געפֿונען מיט די געגעבן סאַכאַקל" ווייַל עס איז קיין נומער וואָס איז סומע גלייך ווי '8'.

אַלגאָריטהם  

  1. דערקלערן א שטעלן.
  2. בשעת 0 צו 'איך' איז ווייניקער ווי די לענג פון די מענגע.
    1. שטעלן דזש צו סומע-אַרר [איך].
    2. קוק אויב דער גאַנג כּולל 'דזש', אויב אמת, דרוק דעם דזש און אַרר [איך], דאָס איז די פּאָר.
    3. אַנדערש לייגן די אַרר [i] אין דעם גאַנג.

דערקלערונג  

מיר האָבן געגעבן אַ פּראָבלעם סטאַטעמענט, אין וואָס מיר זענען געגעבן מיט ינטאַדזשערז מענגע און אַ נומער זאָגן 'סומע'. אונדזער אַרבעט איז צו באַשליסן צי אַ מענגע האט איינער פון די צוויי עלעמענטן וואָס האָבן אַ סומע גלייַך צו אַ געגעבן "סומע".

אונדזער הויפּט געדאַנק איז צו נוצן HashSet און געפֿינען אַ פּאָר. פֿאַר וואָס מיר וועלן צו קראָם די דיפעראַנסיז פון סאַכאַקל און יעדער ווערט פון מענגע בשעת טראַווערסינג, ווייַל אַ פּאָר האט די צוויי עלעמענטן און אַ באַשטימט סומע איז דער שליסל צו געפֿינען אן אנדער עלעמענט. און קוק אין עס אויב איינער פון די יסודות אין פּאָר איז אָדער פאָרשטעלן אָדער נישט.

זע אויך
וויגאַל סאָרט

צו געפֿינען עס אויס, מיר נוצן אַ כאַשינג אופֿן.

לאָמיר נעמען אַ ביישפּיל:

אַרר [] = {1, 4, 45, 6, 10, 8};

  • איך = 0, myset, סומע = 16;

j = סומע-אַרר [איך];

דאָס איז j = 16-1 = 15 און 'j' וועט זיכער נישט זיין אין אַ מאַפּע.

אַזוי עס לייגן אַרר [i] וואָס איז '1' אין myset.

  • i = 1, myset = {1}, סומע = 16;

j = סומע-אַרר [איך];

דאָס איז j = 16-4 = 12 און 'j' איז אַוואַדע נישט פאָרשטעלן אין אַ מאַפּע.

אַזוי עס לייגן אַרר [i] וואָס איז '4' אין myset.

  • i = 2, myset = {1, 4}, סומע = 16;

j = סומע-אַרר [איך];

וואָס איז j = 16-45 = -29 און שורלי 'j' וועט נישט זיין אין אַ מאַפּע.

אַזוי עס לייגן אַרר [i] וואָס איז '45' אין myset.

  • i = 3, myset = {1, 4, 45}, סומע = 16;

j = סומע-אַרר [איך];

וואָס איז j = 16-6 = 10 און j איז נישט פאָרשטעלן אין אַ מאַפּע.

אַזוי עס לייגן אַרר [i] וואָס איז '6' אין myset.

  • i = 4, myset = {1, 4, 45, 6}, סומע = 16;

j = סומע-אַרר [איך];

וואָס איז j = 16-10 = 6 און j איז פאָרשטעלן אין מאַפּע.

דאָ מיר געפֿינען אן אנדער עלעמענט פון פּאָר. מיר האָבן שוין דורכגעקאָכט אָפּעראַציע אויף 16 און 10.

און מיר דרוקן:

“געפֿונען עלעמענטן מיט די געגעבן סומע ווי 16, איז (10, 6);

אַז מיטל צוויי פון די עלעמענטן זענען פאָרשטעלן אין די מענגע וואָס האט אַ סומע גלייַך צו "סאַכאַקל".

ימפּלעמענטאַטיאָן  

C ++ פּראָגראַם פֿאַר גראף פּאָר מיט גיווען סאַם

#include <bits/stdc++.h>
using namespace std;

void getPairOfSum(int arr[], int arr_size, int sum)
{
    unordered_set<int> myset;
    for (int i = 0; i < arr_size; i++)
    {
        int j = sum - arr[i];
        if (myset.find(j) != myset.end())
        {
            cout << "Found elements with the given sum as "<<sum << " is (" << arr[i] <<", " << j << ")"<<endl;
        }
        myset.insert(arr[i]);
    }
}
int main()
{
    int arr[] = { 1, 4, 45, 6, 10, 8 };
    int sum = 16;
    int arr_size = sizeof(arr) / sizeof(arr[0]);
    getPairOfSum(arr, arr_size, sum);
    return 0;
}
Found elements with the given sum as 16 is (10, 6)

Java פּראָגראַם פֿאַר גראף פּאָר מיט גיווען סאַם

import java.io.*;
import java.util.HashSet;

class twoElementSum {
  public static void getPairOfSum(int arr[], int sum) {
    HashSet<Integer> myset = new HashSet<Integer> ();
    for (int i = 0; i<arr.length; ++i) {
      int j = sum - arr[i];
      if (myset.contains(j)) {
        System.out.println("Found elements with the given sum as " + sum + " is (" + arr[i] + ", " + j + ")");
      }
      myset.add(arr[i]);
    }
  }
  public static void main(String[] args) {
    int arr[] = { 1, 4, 45, 6, 10, 8 };
    int sum = 16;
    getPairOfSum(arr, sum);
  }
}
Found elements with the given sum as 16 is (10, 6)

קאַמפּלעקסיטי אַנאַליסיס פֿאַר גראף פּאָר מיט געגעבן סאַכאַקל  

צייט קאַמפּלעקסיטי

אָ (N) ווי דער גאנצער מענגע איז דארף צו זיין בלויז איין מאָל.

זע אויך
פאַרשפּרייטן קאַנדיז צו מענטשן Leetcode סאַלושאַן

ספעיס קאַמפּלעקסיטי

אָ (N) ווי אַ האַש מאַפּע איז געניצט צו קראָם מענגע עלעמענטן.

דערמאָנען