Given two integer arrays arr1 and arr2, and the integer d, return the distance value between the two arrays.
The distance value is defined as the number of elements arr1[i] such that there is not any element arr2[j] where |arr1[i]-arr2[j]| <= d.
Example 1:
Input: arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2 Output: 2 Explanation: For arr1[0]=4 we have: |4-10|=6 > d=2 |4-9|=5 > d=2 |4-1|=3 > d=2 |4-8|=4 > d=2 For arr1[1]=5 we have: |5-10|=5 > d=2 |5-9|=4 > d=2 |5-1|=4 > d=2 |5-8|=3 > d=2 For arr1[2]=8 we have: |8-10|=2 <= d=2 |8-9|=1 <= d=2 |8-1|=7 > d=2 |8-8|=0 <= d=2
Example 2:
Input: arr1 = [1,4,2,3], arr2 = [-4,-3,6,10,20,30], d = 3 Output: 2
Example 3:
Input: arr1 = [2,1,100,3], arr2 = [-5,-2,10,-3,7], d = 6 Output: 1
Constraints:
1 <= arr1.length, arr2.length <= 500-1000 <= arr1[i], arr2[j] <= 10000 <= d <= 100This approach involves iterating over each element in arr1 and checking the absolute differences with each element in arr2. If none of the elements in arr2 are within a distance d, we increase the count. This approach uses nested loops resulting in a time complexity of O(n*m).
This solution iterates through each element of arr1 and checks against all elements of arr2. If |arr1[i] - arr2[j]| > d for all j, it increments a counter.
C++
Java
Python
C#
JavaScript
Time Complexity: O(n*m), where n and m are the sizes of arr1 and arr2 respectively.
Space Complexity: O(1), since we are using only a fixed amount of extra space.
This approach first sorts arr2 and then uses binary search to quickly determine if there exists any element in arr2 within the distance d from any element in arr1. This significantly reduces the time complexity compared to the brute force approach.
This solution first sorts arr2. For each element in arr1, it performs a binary search in arr2 to check if there's an element that satisfies the condition. The sorting enables use of binary search to improve efficiency.
C++
Java
Python
C#
JavaScript
Time Complexity: O(m log m + n log m), where m is the size of arr2 due to sorting and binary searching, and n is the size of arr1.
Space Complexity: O(1), ignoring the space required for sorting.
| Approach | Complexity |
|---|---|
| Brute Force Approach | Time Complexity: O(n*m), where n and m are the sizes of |
| Optimized Approach with Sorting and Binary Search | Time Complexity: O(m log m + n log m), where m is the size of |
Median of Two Sorted Arrays - Binary Search - Leetcode 4 • NeetCode • 551,893 views views
Watch 9 more video solutions →Practice Find the Distance Value Between Two Arrays with our built-in code editor and test cases.
Practice on FleetCode