Hướng dẫn intersection of two sorted lists python - giao điểm của hai danh sách được sắp xếp python

Cho hai mảng được sắp xếp, tìm liên minh và giao lộ của họ. Ví dụ:
Example:

Đầu vào: ARR1 [] = {1, 3, 4, 5, 7} & nbsp; & nbsp; & nbsp; & nbsp; ARR2 [] = {2, 3, 5, 6} & nbsp; đầu ra: Union: {1, 2, 3, 4, 5, 6, 7} & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; giao lộ: {3, 5} arr1[] = {1, 3, 4, 5, 7}
        arr2[] = {2, 3, 5, 6} 
Output: Union : {1, 2, 3, 4, 5, 6, 7} 
         Intersection : {3, 5}

Đầu vào: ARR1 [] = {2, 5, 6} & nbsp; & nbsp; & nbsp; & nbsp; ARR2 [] = {4, 6, 8, 10} & nbsp; đầu ra: Union: {2, 4, 5, 6, 8, 10} & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; giao lộ: {6} arr1[] = {2, 5, 6}
        arr2[] = {4, 6, 8, 10} 
Output: Union : {2, 4, 5, 6, 8, 10} 
         Intersection : {6}

Chúng tôi thực sự khuyên bạn nên nhấp vào đây và thực hành nó, trước khi chuyển sang giải pháp.

Liên minh các mảng ARR1 [] và ARR2 []

Để tìm sự kết hợp của hai mảng được sắp xếp, hãy làm theo quy trình hợp nhất sau: & nbsp;

1] Sử dụng hai biến chỉ mục I và J, giá trị ban đầu I = 0, j = 0 & nbsp; 2] Nếu ARR1 [i] nhỏ hơn ARR2 [J] sau đó in ARR1 [i] và tăng i. & NBSP; 3] [i] lớn hơn ARR2 [J] sau đó in ARR2 [J] và tăng J. mảng.
2] If arr1[i] is smaller than arr2[j] then print arr1[i] and increment i. 
3] If arr1[i] is greater than arr2[j] then print arr2[j] and increment j. 
4] If both are same then print any of them and increment both i and j. 
5] Print remaining elements of the larger array.

Dưới đây là việc thực hiện phương pháp trên: & nbsp;

C++

#include

using namespace std;

void printUnion[int arr1[], int

#include 5

#include 6int #include 8

#include 6using0 using1

using2using3 using4

using5using6using7using8

using2namespace0 using3 namespace2

using5namespace4using7using8

using2namespace0 #include 5

using5namespace4using7using8

using5std;5

using2std;7

#include 6std;7

#include 6using0 void2

using2using6using7using8

#include 6using0 void9

using2namespace4using7using8

std;7

int printUnion[6

#include 5

#include 6int int0

#include 6int int3

#include 6int int6__777778 ____77778080

#include 6arr1[], 9

#include 6int1 int2

std;7

C

int4

void printUnion[int arr1[], int

#include 5

#include 6int #include 8

#include 6using0 using1

using2using3 using4

using5#include 16#include 17#include 18#include 19

using2namespace0 using3 namespace2

using5#include 16#include 17#include 18#include 28

using2namespace0 #include 5

using5#include 16#include 17#include 18#include 28

using5std;5

using2std;7

#include 6std;7

#include 6using0 void2

using2using6using7using8

#include 6using0 void9

using2#include 16#include 17#include 18#include 28

std;7

int printUnion[6

#include 5

#include 6int int0

#include 6int int3

#include 6int int6__777778 ____77778080

#include 6arr1[], 9

#include 6#include 86#include 87

#include 6int1 int2

std;7

C

using2#include 16#include 17#include 18#include 19

Java

#include 6#include 5

#include 92 #include 93

#include 6#include 95 int printUnion[int arr1[], int

using2int using10using11using12using11using8

using21using22using7using24

using2using0 using1

using21using30using7using24

using5using3 using4

using21using30using7using24

using21std;5

using5std;7

using2std;7

using5namespace0 using3 namespace2

using5using22using7using24

using5namespace0 #include 5

using5using30using7using24

using2using0 void2

#include 6std;7

using2using0 void9

#include 6#include 5

using2int1 using11using8

#include 6using67 #include 95 void using70

Các

Các

using2arr1[], 9

#include 6std;7

std;7

Python3

using2int using99

using2int namespace02

namespace08 namespace09

#include 6namespace11namespace12 using11using777____211

using5namespace25namespace26namespace12using7namespace29

#include 6using0 namespace18namespace19 namespace20

using2namespace36 namespace37

using5namespace25namespace40namespace12using7namespace29

using5namespace45namespace32namespace12 using76

using2namespace0namespace51

using5namespace25namespace40namespace12using7namespace29

using5namespace59namespace32namespace12 using76

using5namespace31namespace32namespace12 using76

#include 6using0 namespace70

using2namespace25namespace26namespace12using7namespace29

using2namespace31namespace32namespace12 using76

#include 6using0 namespace20

using2namespace25namespace40namespace12using7namespace29

using2namespace59namespace32namespace12 using76

Các

std;09namespace12 namespace98using78__

std;20namespace12 std;22223

std;24namespace12 std;22____std;27

std;28

C#

using std;30

#include 92 std;32

#include 6#include 95 int printUnion[intstd;38

std;39intstd;41int #include 2int #include 4

#include 6#include 5

using2int #include 8

using2using0 using1

using5using3 using4

using21std;58using7using24

using5namespace0 using3 namespace2

using21std;66using7using24

using5namespace0 #include 5

using21std;66using7using24

using21std;5

using5std;7

using2std;7

using2using0 void2

using5std;58using7using24

using2using0 void9

using5std;66using7using24

using2int1 int2

#include 6std;7

#include 6using67 #include 95 void void05

#include 6#include 5

using2intvoid10

using2intvoid13

using2int void16

using2int void19

using2arr1[], 9

#include 6std;7

std;7

PHP

void25

void26 printUnion[void28using777____530void31

void32void33using777void35namespace29

#include 5

#include 6void39 void40void41 void42

#include 6using0 #include 17void39 void47void33

#include 6#include 5

using2using3 #include 17void28namespace98void39void62void30namespace98void41void66

using5void68#include 17void28namespace98void39void73using7using24

using2namespace0 using3 #include 17void30namespace98void41void62 ____528namespace98void39void66

Các

using2namespace0

using2#include 5

using5void68#include 17void30namespace98void41void73using7using24

using5void39printUnion[12

using2std;7

#include 6std;7

#include 6using0#include 17void39 void47void33namespace29

using2void68#include 17void28namespace98void39void73using7using24

#include 6using0#include 17void41 void47void35namespace29

using2void68#include 17void30namespace98void41void73using7using24

std;7

void28 printUnion[51printUnion[522printUnion[53

void30 printUnion[51printUnion[522printUnion[57

void33 printUnion[59void28using24

void35 printUnion[59void30using24

printUnion[void28using77void30using77void33using77void35using24

printUnion[75

JavaScript

printUnion[76

#include 6void26 printUnion[79

#include 6#include 5

using2printUnion[83 #include 8

using2using0 using1

using5using3 using4

using5namespace0 using3 namespace2

using5namespace0 using3 namespace2

using21int00using7using24

using5namespace0 #include 5

using21int00using7using24

using21std;5

using5std;7

using2std;7

using2using0 void2

using5printUnion[92using7using24

using2using0 void9

using5int00using7using24

using2int1 int2

#include 6std;7

#include 6using67 #include 95 void void05

using2int void16

using2int void19

PHP

using2arr1[], 9

int49

void26 printUnion[void28using777____530void31 O[m + n]
Auxiliary Space: O[1]

Xử lý các bản sao trong bất kỳ mảng nào: Mã trên không xử lý các bản sao trong bất kỳ mảng nào. Để xử lý các bản sao, chỉ cần kiểm tra mọi yếu tố cho dù các phần tử liền kề có bằng nhau không. & NBSP;Above code does not handle duplicates in any of the arrays. To handle the duplicates, just check for every element whether adjacent elements are equal. 

Dưới đây là việc thực hiện phương pháp này. & NBSP;

C++

#include

using namespace std;

#include 95 void int56__

int63int int65

#include 5

#include 6int int69

#include 6int int72

#include 6int int75

#include 6using3 int78

using2int80

#include 6namespace0

using2int84

#include 6int int87

#include 6int89int90int7int92

#include 6int94using7using8

#include 6int98

#include 6arr1[], 00 #include 17int arr1[], 03

using2using3 arr1[], 06

using5arr1[], 08using7using8

using5arr1[], 12

using2std;7

#include 6std;7

#include 6arr1[], 00 #include 17int arr1[], 21

using2using3 arr1[], 24

using5arr1[], 26using7using8

using5arr1[], 30

using2std;7

#include 6std;7

std;7

int printUnion[6

#include 5

#include 6int arr1[], 41

#include 6int arr1[], 44

#include 6int arr1[], 3int7int8int77____80

#include 6int int6int7 ____85int77 ____87

#include 6arr1[], 60

#include 6int1 int2

std;7

C

int4

arr1[], 66

#include 95 void int56__

int63int int65

#include 5

#include 6int int69

#include 6int int72

#include 6int int75

#include 6using3 int78

using2int80

#include 6namespace0

using2int84

#include 6int int87

#include 6int94using7using8

using2int07

#include 6#include 16#include 17int11int12

#include 6int98

#include 6arr1[], 00 #include 17int arr1[], 03

using2using3 arr1[], 06

using5#include 16#include 17int11int27

using5arr1[], 12

using2std;7

#include 6std;7

#include 6arr1[], 00 #include 17int arr1[], 21

using2using3 arr1[], 24

using5#include 16#include 17int11int46

using5arr1[], 30

using2std;7

#include 6std;7

std;7

int printUnion[6

#include 5

#include 6int arr1[], 41

#include 6int arr1[], 44

#include 6int arr1[], 3int7int8int77____80

#include 6int int6int7 ____85int77 ____87

#include 6arr1[], 60

#include 6int1 int2

std;7

C

#include 6arr1[], 00 #include 17int int05

Java

#include 92 #include 93

#include 6#include 5

#include 6#include 95 void int56int int90

int91int int93

using2int int98using76#include 000

using2int #include 003using76#include 000

using5int80

using2std;7

using2namespace0

using5int84

using2int #include 008using11using8

using2#include 031using11#include 033using7using24

using2#include 037using11#include 039

using2using3 #include 013

using2int #include 024#include 025 int#include 027using76#include 000

using21#include 053using7using24

using21arr1[], 12

using5std;7

using2std;7

using2arr1[], 00 #include 17int using10using76#include 046

using5using3 #include 049using76#include 051

using2arr1[], 00 #include 17int #include 066using11#include 068

using21arr1[], 30

using5std;7

using2std;7

#include 6std;7

using5using3 #include 071using11#include 073

#include 6#include 5

using21#include 075using7using24

#include 6using67 #include 95 void using70

using2#include 118

#include 6std;7

std;7

Python3

Các

Các

namespace08 #include 123

#include 6std;20namespace12 std;22std;23

#include 6std;24namespace12 std;22std;27

#include 6namespace31namespace12 using11

#include 6namespace59namespace12 using11

using2using3 namespace23

using5using3 #include 156namespace12 #include 158

using21namespace25#include 161namespace12#include 163namespace29

using21#include 143namespace12 #include 168

using5namespace31namespace32namespace12 using76

using2namespace36 #include 176

using5using3 #include 179namespace12 #include 158

using21namespace25#include 184namespace12#include 163namespace29

using21#include 143namespace12 #include 191

using5namespace59namespace32namespace12 using76

using2namespace0namespace51

using5using3 #include 156namespace12 #include 158

using21namespace25#include 161namespace12#include 163namespace29

using21#include 143namespace12 #include 168

using5namespace31namespace32namespace12 using76

using5namespace59namespace32namespace12 using76

using5namespace31namespace32namespace12 using76

#include 6using0 namespace70

using5namespace25#include 161namespace12#include 163namespace29

using2using3 #include 156namespace12 #include 158

using5#include 143namespace12 #include 168

using2namespace31namespace32namespace12 using76

#include 6using0 namespace20

using5namespace25#include 184namespace12#include 163namespace29

using2using3 #include 179namespace12 #include 158

using5#include 143namespace12 #include 191

using2namespace59namespace32namespace12 using76

using3 #include 272namespace12namespace12 #include 275namespace51

#include 6namespace96namespace12 namespace98using76__

#include 6#include 304

C#

#include 6std;09namespace12 namespace98using78using77__

using std;30

#include 92 std;32

int91int#include 317

#include 6#include 5

#include 6#include 95 void int56intstd;38

using2int #include 322

using2int #include 325

using2int int75

using5int80

using2namespace0

using5int84

using2using3 int78

using2#include 345using7using24

using2int98

using2int#include 340____1025 int#include 343

using2arr1[], 00 #include 17int #include 354

using21#include 359using7using24

using21arr1[], 12

using5std;7

using2std;7

using5using3 arr1[], 06

using2arr1[], 00 #include 17int #include 372

using21#include 377using7using24

using21arr1[], 30

using5std;7

using2std;7

#include 6std;7

using5using3 arr1[], 24

#include 6#include 5

using2int#include 397

using2int#include 400

using2#include 118

#include 6std;7

std;7

#include 6using67 #include 95 void void05

printUnion[76

JavaScript

#include 6void26 #include 409

using2printUnion[83 #include 412

using2printUnion[83 #include 415

using2printUnion[83 int75

using5int80

using2#include 425namespace0

using5int84

using2using3 #include 013

using2#include 433using7using24

using2#include 437

using2printUnion[83 #include 431

using2arr1[], 00 #include 17int #include 354

using21#include 447using7using24

using21#include 451

using5std;7

using2std;7

using5using3 arr1[], 06

using2arr1[], 00 #include 17int #include 372

using21#include 465using7using24

using21arr1[], 30

using5std;7

using2std;7

#include 6std;7

using5using3 arr1[], 24

#include 6using67 #include 95 void void05

using2#include 118

int49

JavaScript O[l1 + l2] 
Auxiliary Space: O[n]

#include 6void26 #include 409Sanjay Kumar for suggesting this solution.

using2printUnion[83 #include 412TreeSet in Java: The idea of the approach is to build a TreeSet and insert all the elements from both arrays into it. As a tree set stores only unique values, it will only keep all the unique values of both arrays.

using2printUnion[83 #include 415

using2printUnion[83 int75

using2using3 #include 013

using2printUnion[83 #include 431

using std;30

#include 92 std;32

#include 6#include 95 void int56intstd;38

using2int #include 322

#include 6#include 5

using2int #include 325

using2int int75

using5#include 518

using2using3 int78

using5#include 518

using2#include 527

using5printUnion[51#include 025 #include 531

using2arr1[], 00 #include 17int #include 536

using5#include 538

using2int1 #include 541

#include 6std;7

#include 6using67 #include 95 void #include 548

#include 6#include 5

Các

Các

using2int #include 581

using2int #include 584

using2#include 586

using5#include 588

using2arr1[], 00 #include 17int #include 593

using5#include 595using7using24

using2std;7

#include 6std;7

std;7

Độ phức tạp về thời gian: O [m + n] trong đó 'm' và 'n' là kích thước của không gian mảng ] Thời gian thêm n phần tử sẽ mất [nlogn] O[m + n] where ‘m’ and ‘n’ are the size of the arrays
Auxiliary Space: O[m*log[m]+n*log[n]] because adding element into TreeSet takes O[logn] time adding n elements will take [nlogn]

Cảm ơn Arava Sai Teja đã đề xuất giải pháp này.Arava Sai Teja for suggesting this solution.

Một cách tiếp cận khác sử dụng Hashmap trong Java: Ý tưởng về phương pháp này là xây dựng một hashmap và chèn tất cả các yếu tố. & nbsp; như một hashmap có độ phức tạp của O [1] để chèn và tra cứu.HashMap in Java: The idea of the approach is to build a HashMap and insert all the elements.  As a HashMap has the complexity of O[1] for insertion and lookup.

Dưới đây là việc thực hiện phương pháp này.

Java

#include 485 #include 486

#include 485 #include 488

#include 485 #include 608

#include 92 std;32

#include 6using67 #include 95 #include 494

#include 6#include 496int arr1[], int #include 500

#include 501int #include 503int #include 505

#include 6#include 5

using2#include 629#include 025 #include 631

using2arr1[], 00 #include 17int #include 636using11#include 638

using2#include 5

using5using3#include 643

using5#include 5

using21#include 647using76using24

using5std;7

using5namespace0

using5#include 5

using21#include 657using76using24

using5std;7

using2std;7

using2arr1[], 00 #include 17int #include 636using11#include 670

using2#include 5

using5using3#include 675

using5#include 5

using21#include 679using76using24

using5std;7

using5namespace0

using5#include 5

using21#include 689using76using24

using5std;7

using2std;7

using2#include 697#include 025 #include 531

using2arr1[], 00 #include 17int #include 704

using2#include 5

using5#include 708

using2std;7

using2int1 #include 541

#include 6std;7

#include 6using67 #include 95 void #include 548

#include 6#include 5

Các

Các

using2int #include 581

using2int #include 584

#include 757#include 758#include 759using24

using2#include 586

using5#include 588

using2arr1[], 00 #include 17int #include 593

Độ phức tạp về thời gian: O [m + n] trong đó 'm' và 'n' là kích thước của không gian mảng ] Thời gian thêm n phần tử sẽ mất [nlogn]

using2std;7

#include 6std;7

std;7

C#

Cảm ơn Arava Sai Teja đã đề xuất giải pháp này.

Một cách tiếp cận khác sử dụng Hashmap trong Java: Ý tưởng về phương pháp này là xây dựng một hashmap và chèn tất cả các yếu tố. & nbsp; như một hashmap có độ phức tạp của O [1] để chèn và tra cứu.

Dưới đây là việc thực hiện phương pháp này.

Java

#include 485 #include 486

#include 485 #include 488

#include 788#include 5

#include 6#include 805intusing77int#include 809

#include 485 #include 608

#include 92 std;32

#include 6using67 #include 95 #include 494

using2#include 827

#include 810std;7

#include 6#include 496int arr1[], int #include 500

using2#include 834

#include 810std;7

#include 6std;7

#include 501int #include 503int #include 505

using2#include 629#include 025 #include 631

using2#include 848

#include 810std;7

#include 6#include 496int arr1[], int #include 500

using2#include 855

#include 810std;7

#include 6std;7

#include 501int #include 503int #include 505

using2#include 629#include 025 #include 631

using2arr1[], 00 #include 17int #include 636using11#include 638

#include 788std;7

using2arr1[], 00 #include 17int #include 636using11#include 670

#include 788#include 5

#include 6int#include 397

#include 6int#include 888

using2#include 5

#include 6int #include 894

#include 6#include 896#include 759using24

#include 6#include 900

#include 6#include 865#include 17int namespace31#include 869 #include 907using7__

#include 788std;7

std;7

Đầu ra

Union is :
1 2 3 4 5 

Độ phức tạp về thời gian: O [M + N] trong đó ’m, và’ n, là kích thước của không gian arrayauxiliary: O [M + N] O[m + n] where ‘m’ and ‘n’ are the size of the arrays
Auxiliary Space: O[m + n]

Cảm ơn Aarti Rathi đã đề xuất giải pháp này.Aarti Rathi for suggesting this solution.

Một cách tiếp cận được tối ưu hóa khác: Trong mã trên, chúng tôi sử dụng một số không gian phụ trợ bổ sung bằng cách tạo Newtable []. Chúng ta có thể giảm chương trình độ phức tạp không gian để kiểm tra hàm trên thành hằng số bằng cách kiểm tra các phần tử liền kề khi tăng I hoặc J sao cho I hoặc J trực tiếp chuyển sang phần tử khác biệt tiếp theo. Chúng ta có thể thực hiện thao tác này tại chỗ [tức là mà không cần sử dụng bất kỳ không gian bổ sung nào].: In the above code we use some extra auxiliary space by creating newtable[ ]. We can reduce the space complexity program to test the above function to constant by checking adjacent elements when incrementing i or j such that i or j directly move to the next distinct element. We can perform this operation in place [i.e. without using any extra space].

C++

#include

using namespace std;

void #include 918__

#include 5

#include 6#include 927

#include 6#include 5

using2#include 931

#include 6#include 425using0 #include 935

std;7

void #include 938int#include 940int#include 942

#include 5

#include 6int #include 8

#include 6using0 #include 949

#include 6#include 5

using2using3 using4

using2#include 5

using5arr1[], 08using7using8

using5#include 962

using2std;7

using2namespace0 using3 #include 968

using2#include 5

using5arr1[], 26using7using8

using5#include 976

using2std;7

using2namespace0

using2#include 5

using5arr1[], 08using7using8

using5#include 962

using5#include 976

using2std;7

#include 6std;7

#include 6using0 #include 997

#include 6#include 5

using2arr1[], 08using7using8

using2#include 962

#include 6std;7

#include 6using0 using010

#include 6#include 5

using2arr1[], 26using7using8

using2#include 976

#include 6std;7

std;7

int printUnion[6

#include 5

#include 6#include 920intusing028

#include 6#include 920intusing032

#include 6using034

#include 6int1 int2

std;7

Độ phức tạp về thời gian: & nbsp; & nbsp; trong đó m & n là kích thước của các mảng.AUXILIARITY Không gian: & nbsp;

 where m & n are the sizes of the arrays.
Auxiliary Space: 

Giao điểm của mảng ARR1 [] và ARR2 []

Để tìm giao điểm của 2 mảng được sắp xếp, hãy làm theo cách tiếp cận dưới đây: & nbsp;

1] Sử dụng hai biến chỉ mục I và J, giá trị ban đầu I = 0, j = 0 & nbsp; 2] Nếu ARR1 [i] nhỏ hơn ARR2 [J] thì tăng I. & NBSP; 3] nếu ARR1 [i] ARR2 [J] sau đó tăng J. & NBSP; 4] Nếu cả hai đều giống nhau thì in bất kỳ trong số chúng và tăng cả I và J.
2] If arr1[i] is smaller than arr2[j] then increment i. 
3] If arr1[i] is greater than arr2[j] then increment j. 
4] If both are same then print any of them and increment both i and j.

Dưới đây là việc thực hiện phương pháp trên:

C++

#include

using namespace std;

void #include 918__

#include 5

#include 6int #include 8

#include 6using0 #include 949

using2using3 using4

using5std;5

using2namespace0 using3 #include 968

using5using070

using2namespace0

using2#include 5

using5arr1[], 26using7using8

using5std;5

using5using070

using2std;7

#include 6std;7

std;7

int printUnion[6

#include 5

#include 6int1 int2

Độ phức tạp về thời gian: & nbsp; & nbsp; trong đó m & n là kích thước của các mảng.AUXILIARITY Không gian: & nbsp;

Giao điểm của mảng ARR1 [] và ARR2 []

Để tìm giao điểm của 2 mảng được sắp xếp, hãy làm theo cách tiếp cận dưới đây: & nbsp;

#include 6using112

#include 6int1 int2

std;7

Độ phức tạp về thời gian: & nbsp; & nbsp; trong đó m & n là kích thước của các mảng.AUXILIARITY Không gian: & nbsp;

int4

void #include 918__

#include 5

#include 6int #include 8

#include 6using0 #include 949

using2using3 using4

using5std;5

using2namespace0 using3 #include 968

using5using070

using2namespace0

using2std;7

using5#include 16#include 17#include 18#include 28

using5std;5

using2std;7

#include 6std;7

std;7

int printUnion[6

#include 5

#include 6int1 int2

Độ phức tạp về thời gian: & nbsp; & nbsp; trong đó m & n là kích thước của các mảng.AUXILIARITY Không gian: & nbsp;

Giao điểm của mảng ARR1 [] và ARR2 []

Để tìm giao điểm của 2 mảng được sắp xếp, hãy làm theo cách tiếp cận dưới đây: & nbsp;

#include 6using112

#include 6#include 86#include 87

#include 6int1 int2

std;7

Độ phức tạp về thời gian: & nbsp; & nbsp; trong đó m & n là kích thước của các mảng.AUXILIARITY Không gian: & nbsp;

Giao điểm của mảng ARR1 [] và ARR2 []

Để tìm giao điểm của 2 mảng được sắp xếp, hãy làm theo cách tiếp cận dưới đây: & nbsp;

#include 6#include 5

1] Sử dụng hai biến chỉ mục I và J, giá trị ban đầu I = 0, j = 0 & nbsp; 2] Nếu ARR1 [i] nhỏ hơn ARR2 [J] thì tăng I. & NBSP; 3] nếu ARR1 [i] ARR2 [J] sau đó tăng J. & NBSP; 4] Nếu cả hai đều giống nhau thì in bất kỳ trong số chúng và tăng cả I và J.

Dưới đây là việc thực hiện phương pháp trên:

void using044int arr1[], int

using21std;5

using5namespace0 using3 namespace2

using21using070

using5namespace0 #include 5

using21using30using7using24

using21std;5

using5std;7

using2std;7

#include 6std;7

#include 6using67 #include 95 void using70

#include 6#include 5

Các

Các

using2int using99

using2int namespace02

using2using112

#include 6std;7

std;7

Python3

namespace08 using289

#include 6namespace11namespace12 using11using777____211

#include 6using0 namespace18namespace19 namespace20

using2using3 namespace23

using5namespace31namespace32namespace12 using76

using2namespace36 namespace37

using5namespace45namespace32namespace12 using76

using2namespace0namespace51

using5namespace25namespace40namespace12using7namespace29

using5namespace59namespace32namespace12 using76

using5namespace31namespace32namespace12 using76

using2namespace36 namespace37

using5namespace45namespace32namespace12 using76

using5namespace59namespace32namespace12 using76

Các

using368

C#

std;09namespace12 namespace98using78__

std;20namespace12 std;22223

std;24namespace12 std;22____std;27

using std;30

#include 6#include 5

#include 92 std;32

#include 6#include 95 void using044intstd;38

using379intstd;41int #include 2int #include 4

using21std;5

using5namespace0 using3 namespace2

using21using070

using5namespace0 #include 5

using21std;66using7using24

using21std;5

using5std;7

using2std;7

#include 6std;7

using2int #include 8

#include 6#include 5

using2intvoid10

using2using0 using1

using5using3 using4

#include 6using67 #include 95 void void05

using2using112

#include 6std;7

std;7

using2intvoid13

void25

using2int void16

using451void33using77void35namespace29

#include 5

using2int void19

PHP

void26 using044void28using77void30void31

#include 6#include 5

#include 6void39 using459

using5void39printUnion[12

#include 6void41 void42

using5void41printUnion[12

using2namespace0

using2#include 5

#include 6using0 #include 17void39 void47void33

using5void39printUnion[12

using5void41printUnion[12

using2std;7

#include 6std;7

std;7

using2using3 #include 17void28namespace98void39void62void30namespace98void41void66

using2namespace0 using3 #include 17void30namespace98void41void62 ____528namespace98void39void66

using5void68 void30namespace98void41using514using7using8

void28 printUnion[51printUnion[522printUnion[53

using044void28using77void30using77void33using77void35using24

printUnion[75

void30 printUnion[51printUnion[522printUnion[57

printUnion[76

void33 printUnion[51using538#include 17void28using24

#include 5

void35 printUnion[51using538#include 17void30using24

JavaScript

#include 6#include 5

void26 using368

using5std;5

#include 6printUnion[83 #include 8

using5using070

using2namespace0

using2#include 5

using5int00using7using24

using5std;5

using2std;7

#include 6std;7

std;7

#include 6using0 using567

using2using3 using4

using2namespace0 using3 namespace2

printUnion[83 int37

using112

int49

printUnion[83 int40 O[m + n]
Auxiliary Space: O[1]

printUnion[83 using99
The above code does not handle duplicate elements in arrays. The intersection should not count duplicate elements. To handle duplicates just check whether the current element is already present in the intersection list. Below is the implementation of this approach.

C++

#include

using namespace std;

void using611int arr1[], int

#include 5

#include 6int #include 8

#include 6using625intusing627

#include 6using0 using1

using2using3 using4

using5std;5

using2namespace0 using3 namespace2

using5using070

using2namespace0

using2#include 5

using5using647

using5std;5

using5using070

using2std;7

#include 6std;7

#include 6arr1[], 00#include 17using659 using660

#include 6#include 5

using2using664using7using8

using2std;7

std;7

int printUnion[6

#include 5

#include 6int using675

#include 6int using678

#include 6int int6__777778 ____77778080

#include 6using694

#include 6int1 int2

std;7

Java

#include 485 #include 486

#include 485 #include 488

#include 92 using704

#include 6#include 95 void using611int arr1[], int #include 500

using713int #include 2int #include 4

#include 6#include 5

using2using721#include 025 using723

using2int using10using11using12using11using8

using2using0 using1

using5using3 using4

using21std;5

using5namespace0 using3 namespace2

using21using070

using5namespace0 #include 5

using21using749

using21std;5

using5std;7

using2std;7

using2arr1[], 00 #include 17int using760

using761using762

using2#include 5

using5using766using7using24

using2std;7

using2#include 758using773using24

#include 6std;7

#include 6using67 #include 95 void using70

#include 6#include 5

Các

Các

using2int using99

using2int namespace02

using2using694

#include 6std;7

std;7

Python3

namespace08 using824

#include 6using826namespace12 using828

#include 6namespace31namespace12 namespace59namespace12 using11

#include 6using0 using837namespace19 using839

using2using3 using842namespace12namespace12 using845

using5using3 std;22using849__

using21using860namespace32namespace12 using76

using21namespace45namespace32namespace12 using76

using5namespace0namespace51

using21using873

using21using860namespace32namespace12 using76

using21namespace45namespace32namespace12 using76

using2namespace36 using886

using5using860namespace32namespace12 using76

using2namespace0namespace51

using5namespace45namespace32namespace12 using76

#include 6using3 using902 std;22using904

using2int1 namespace98using853using76std;08

#include 6int1 using913

using3 #include 272namespace12namespace12 #include 275namespace51

#include 6namespace96namespace12 namespace98using76__

#include 6std;09namespace12 namespace98using78__

#include 6using951namespace12 using953std;22229555______42222

#include 6namespace25#include 17using961using962

C#

using std;30

using #include 784

#include 92 std;32

#include 6#include 95 void using611int using974int using976__

#include 6#include 5

using2int #include 8

Các

using2using0 using1

using5using3 using4

using21std;5

using5namespace0 using3 namespace2

using21using070

using5namespace0

using5#include 5

using21namespace013

using21std;5

using21using070

using5std;7

using2std;7

using2#include 865#include 17int namespace026#include 869 namespace028

using2#include 5

using5namespace032using7using24

using2std;7

#include 6std;7

#include 6using67 #include 95 void void05

#include 6#include 5

using2intnamespace048

using2intnamespace051

using2int void16

using2int void19

using2using694

#include 6std;7

std;7

JavaScript

printUnion[76

void26 namespace065

#include 6namespace067

#include 6namespace069

#include 6using0namespace072

using2using3namespace075

using5using3namespace078

using21namespace080

using21namespace082

using5std;7

using5namespace0#include 5

using21namespace089

using21namespace080

using21namespace082

using5std;7

using2std;7

using2namespace0 using3namespace101

using5namespace080

using2namespace0

using5namespace082

#include 6std;7

#include 6using3namespace112

using2int1 namespace115

#include 6int1 using913

std;7

namespace120

namespace121

namespace122

namespace123

int49

Độ phức tạp về thời gian: O [M + N] & NBSP; Không gian phụ trợ: O [Min [M, N]] O[m + n] 
Auxiliary Space : O[min[m, n]]

Một cách tiếp cận khác sử dụng bộ cây: Ý tưởng về phương pháp này là xây dựng một cây được đặt để lưu trữ các yếu tố duy nhất của ARRI []. Sau đó so sánh các phần tử ARR2 [] với bộ cây và cũng kiểm tra xem điều đó có được xem xét trong giao điểm để tránh trùng lặp không. The idea of this approach is to build a tree set to store the unique elements of arri[]. Then compare the elements arr2[] with the tree set and also check if that is considered in the intersection to avoid duplicates.

Dưới đây là việc thực hiện phương pháp này.

Java

#include 485 #include 486

#include 485 #include 488

#include 92 std;32

#include 6using67 #include 95 #include 494

#include 6namespace136int arr1[], int #include 500

namespace141int #include 503int #include 505

#include 6#include 5

using2#include 509#include 025 #include 511

using2arr1[], 00 #include 17int #include 516

using5#include 518

using2#include 527

using5printUnion[51#include 025 #include 531

using2arr1[], 00 #include 17int #include 523

using5using3 namespace172

using21namespace174

using21#include 538

using2namespace178

using2int1 #include 541

#include 6std;7

#include 6using67 #include 95 void #include 548

#include 6#include 5

Các

Các

using2int #include 581

using2int #include 584

using2namespace222

using5namespace224

using2arr1[], 00 #include 17int namespace229

using5#include 595using7using24

using2std;7

#include 6std;7

std;7

Độ phức tạp về thời gian: O [M+N] Không gian phụ trợ: O [M+N] O[m+n]
Auxiliary Space: O[m+n]

Cảm ơn Arava Sai Teja đã đề xuất giải pháp này. & NBSP;Arava Sai Teja for suggesting this solution. 

Một cách tiếp cận khác hữu ích khi sự khác biệt giữa kích thước của hai mảng đã cho là đáng kể. & Nbsp; ý tưởng được lặp lại thông qua mảng ngắn hơn và thực hiện tìm kiếm nhị phân cho mọi yếu tố của mảng ngắn trong mảng lớn [lưu ý rằng mảng được sắp xếp]. Độ phức tạp về thời gian của giải pháp này là O [Min [MLOGN, NLOGM]]. Giải pháp này hoạt động tốt hơn cách tiếp cận trên khi tỷ lệ chiều dài lớn hơn so với nhỏ hơn là thứ tự logarit. 
The idea is to iterate through the shorter array and do a binary search for every element of short array in big array [note that arrays are sorted]. Time complexity of this solution is O[min[mLogn, nLogm]]. This solution works better than the above approach when ratio of larger length to smaller is more than logarithmic order.

Xem bài đăng sau để biết các mảng chưa được phân loại. & NBSP; Tìm liên minh và giao điểm của hai mảng chưa được phân loại viết nhận xét viết nếu bạn tìm thấy bất kỳ lỗi nào trong các mã/thuật toán trên hoặc tìm các cách khác để giải quyết cùng một vấn đề. & NBSP;
Find Union and Intersection of two unsorted arrays
Please write comments if you find any bug in above codes/algorithms, or find other ways to solve the same problem. 


Bài Viết Liên Quan

Chủ Đề