问题
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?
回答1:
You can do it in O(N+M) time and O(N) space like this:
- Put elements of array
a
into a hash set - Walk through array
b
, and check if hash table contains2-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.
来源:https://stackoverflow.com/questions/49407831/compare-elements-of-two-arrays-in-less-than-on2-time