Reputation: 96
I have two integer arrays. I need to find out two numbers, one from each array, whose sum is equal to 2. This is very simple in O(n^2) but is there a way to do it faster?
Upvotes: 2
Views: 1494
Reputation: 726569
You can do it in O(N+M) time and O(N) space like this:
a
into a hash setb
, and check if hash table contains 2-b[i]
Constructing a hash set of N
elements takes O(N) time and O(N) space. Checking each of M
elements against the hash set takes O(1), for a total of O(N+M) time.
Upvotes: 5