-
Notifications
You must be signed in to change notification settings - Fork 25
/
1385-find-the-distance-value-between-two-arrays.js
64 lines (55 loc) · 1.61 KB
/
1385-find-the-distance-value-between-two-arrays.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
// 1385. Find the Distance Value Between Two Arrays
// Easy 68%
// 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
// -10^3 <= arr1[i], arr2[j] <= 10^3
// 0 <= d <= 100
/**
* @param {number[]} arr1
* @param {number[]} arr2
* @param {number} d
* @return {number}
*/
const findTheDistanceValue = function(arr1, arr2, d) {
return arr1.reduce((res, v1) => res + (arr2.every(v2 => Math.abs(v1 - v2) > d ? 1 : 0)), 0)
}
;[
[[4,5,8], [10,9,1,8], 2],
[[1,4,2,3], [-4,-3,6,10,20,30], 3],
[[2,1,100,3], [-5,-2,10,-3,7], 6],
].forEach(([arr1, arr2, d]) => {
console.log(findTheDistanceValue(arr1, arr2, d))
})
// Solution:
// 题意:返回符合要求的 arr1[i] 的个数。
// 两层遍历,用 every 函数检查符合的 arr1[i],用 reduce 函数统计个数。
// Submission Result: Accepted