Amazon interview question

Find intersection of two unsorted arrays?

Interview Answers

Anonymous

28 Feb 2011

Two ways. Sort both arrays. Use pointers to traverse both the arrays from start and print any matching elements. Or Use Hashmap storing the array element and its count value from first array.

Anonymous

12 Mar 2011

Since Amazon is particularly fond of hash tables, I'd prefer to use it in the solution. Plus it's slightly faster than sorting both arrays. public static int[] ArrayIntersection(int[] arr1, int[] arr2) { Dictionary hashTable = new Dictionary(); for (int i = 0; i list = new List(); for (int i = 0; i < arr2.Length; i++) { if (hashTable.ContainsKey(arr2[i])) { list.Add(arr2[i]); } } return list.ToArray(); }