Back to Leetcode Go

1385. Find the Distance Value Between Two Arrays

website/content.en/ChapterFour/1300~1399/1385.Find-the-Distance-Value-Between-Two-Arrays.md

1.7.972.2 KB
Original Source

1385. Find the Distance Value Between Two Arrays

Problem

Given two integer arrays arr1 and arr2, and the integer dreturn 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
  • -10^3 <= arr1[i], arr2[j] <= 10^3
  • 0 <= d <= 100

Summary

Given two integer arrays arr1 , arr2 and an integer d , return the distance value between the two arrays. The "distance value" is defined as the number of elements that satisfy this distance requirement: for an element arr1[i] , there does not exist any element arr2[j] such that |arr1[i]-arr2[j]| <= d .

Constraints:

  • 1 <= arr1.length, arr2.length <= 500
  • -10^3 <= arr1[i], arr2[j] <= 10^3
  • 0 <= d <= 100

Solution Approach

  • Calculate the distance between the two arrays. The distance value is defined as the number of elements that satisfy the condition: for an element arr1[i], there does not exist any element arr2[j] such that |arr1[i]-arr2[j]| <= d.
  • This is an easy problem. According to the definition of the distance value, simply use nested loops to count.

Code

go

package leetcode

func findTheDistanceValue(arr1 []int, arr2 []int, d int) int {
	res := 0
	for i := range arr1 {
		for j := range arr2 {
			if abs(arr1[i]-arr2[j]) <= d {
				break
			}
			if j == len(arr2)-1 {
				res++
			}
		}
	}
	return res
}

func abs(a int) int {
	if a < 0 {
		return -1 * a
	}
	return a
}