Sponsored
Sponsored
This approach utilizes the fact that both arrays are sorted. Using two pointers, one for each array, we traverse the arrays to find the smallest common value:
Time Complexity: O(n + m), where n and m are the lengths of the two arrays. We only traverse each array once.
Space Complexity: O(1), no additional space is used apart from a few variables.
1def find_min_common_value(nums1, nums2):
2 i, j = 0, 0
3 while i < len(nums1) and j < len(nums2):
4 if nums1[i] == nums2[j]:
5 return nums1[i]
6 elif nums1[i] < nums2[j]:
7 i += 1
8 else:
9 j += 1
10 return -1
11
12nums1 = [1, 2, 3]
13nums2 = [2, 4]
14result = find_min_common_value(nums1, nums2)
15print(result)
Using Python's list indexing and a simple while-loop structure similar to other languages, this solution finds the minimum common element using the two-pointer technique efficiently.
This approach uses a HashSet to store the elements of the smaller array, providing a quick way to check for common elements:
Time Complexity: O(n log n + m), mainly due to qsort and possibly bsearch in the worst case scenario per element in the second array.
Space Complexity: O(n), additional space used for sorting elements.
This C solution uses a combination of manual sorting and binary searching with the help of C's standard library functions to find a common minimum element. The input is checked, potentially swapped for size optimization, then sorted and binary searched for elements presence.