### rhezo's blog

By rhezo, history, 7 years ago,

Given 2 sorted arrays with distinct elements, one sorted in increasing order and other sorted in decreasing order. Can we find the element which is present in both of them in O(logN) or O((logN)2)?

• -12

 » 7 years ago, # | ← Rev. 2 →   -15 Good question. Personally I don't think it's possible but I have utterly no proof of my suspicion. I can only think of (trivial) O(NlogN) solution.
•  » » 7 years ago, # ^ |   +5 Yeah NlogN solution is clear
 » 7 years ago, # |   +24 You can do O(N): just merge this two arrays and iterate over elements to see if there are equal neighbors.From this point of view it is clear that O(N) is the best complexity. For example, for arrays where elements of two arrays alternate when you merge them can be checked only through accessing all their elements by comparing all pairs.
•  » » 7 years ago, # ^ |   0 Thanks!
 » 7 years ago, # |   +6 We can use two pointers. Start from the left in one array and from the right in the other one (minimum element in each one). If the elements are equal, you've found a match. If not, move the pointer that has the minimum element.