給你兩個整數陣列 arr1 , arr2 和乙個整數 d ,請你返回兩個陣列之間的 距離值 。
「距離值」定義為符合此距離要求的元素數目:對於元素 arr
1[i]
arr1[i]
arr1[i
] ,不存在任何元素 arr
2[j]
arr2[j]
arr2[j
] 滿足 ∣ar
r1[i
]−ar
r2[j
]∣
<=d
|arr1[i]-arr2[j]| <= d
∣arr1[
i]−a
rr2[
j]∣<=d
。示例 1:
輸入:arr1 = [4,5,8], arr2 = [10,9,1,8], d = 2示例 2:輸出:2
解釋:對於 arr1[0]=4 我們有:
|4-10|=6 > d=2
|4-9|=5 > d=2
|4-1|=3 > d=2
|4-8|=4 > d=2
所以 arr1[0]=4 符合距離要求
對於 arr1[1]=5 我們有:
|5-10|=5 > d=2
|5-9|=4 > d=2
|5-1|=4 > d=2
|5-8|=3 > d=2
所以 arr1[1]=5 也符合距離要求
對於 arr1[2]=8 我們有:
|8-10|=2 <= d=2
|8-9|=1 <= d=2
|8-1|=7 > d=2
|8-8|=0 <= d=2
存在距離小於等於 2 的情況,不符合距離要求
故而只有 arr1[0]=4 和 arr1[1]=5 兩個符合距離要求,距離值為 2
輸入:arr1 = [1,4,2,3], arr2 = [-4,-3,6,10,20,30], d = 3示例 3:輸出:2
輸入:arr1 = [2,1,100,3], arr2 = [-5,-2,10,-3,7], d = 6輸出:1
一、加入訊號值作為判斷條件
class
solution
:def
findthedistancevalue
(self, arr1: list[
int]
, arr2: list[
int]
, d:
int)
->
int:
count =
0for i in arr1:
flag =
1for j in arr2:
ifabs
(i - j)
<= d:
flag =
0break
if flag :
count +=
1return count
二、for
−els
efor-else
for−el
se語句
在python中的while或者for迴圈之後還可以有else子句,作用是for迴圈中if條件一直不滿足,則最後就執行else語句
class
solution
:def
findthedistancevalue
(self, arr1: list[
int]
, arr2: list[
int]
, d:
int)
->
int:
count =
0for i in arr1:
for j in arr2:
ifabs
(i - j)
<= d:
break
else
: count +=
1return count
三、逆向思路
返回此距離要求的元素數目,即返回陣列長度減去此陣列不滿足此距離要求的元素數目
class
solution
:def
findthedistancevalue
(self, arr1: list[
int]
, arr2: list[
int]
, d:
int)
->
int:
count =
0for i in arr1:
for j in arr2:
ifabs
(i - j)
<= d:
count +=
1break
return
len(arr1)
- count
四、二分查詢
找到a rr
2[
]arr2
arr2
中最接近arr
1[i]
arr1[i]
arr1[i
]的值,比較差值,其他的差值都大於這個值。
也許可以用其他查詢方法做這道題
class
solution
:def
findthedistancevalue
(self, arr1: list[
int]
, arr2: list[
int]
, d:
int)
->
int:
arr2.sort(
) cnt =
0for x in arr1:
p = bisect.bisect_left(arr2, x)
if p ==
len(arr2)
orabs
(x - arr2[p]
)> d:
if p ==0or
abs(x - arr2[p -1]
)> d:
cnt +=
1return cnt
leetcode 1385 兩個陣列間的距離值
1385.兩個陣列間的距離值 難度簡單12 給你兩個整數陣列arr1,arr2和乙個整數d,請你返回兩個陣列之間的距離值。距離值 定義為符合此描述的元素數目 對於元素arr1 i 不存在任何元素arr2 j 滿足 arr1 i arr2 j d。示例 1 輸入 arr1 4,5,8 arr2 10,...
LeetCode 1385 兩個陣列間的距離值
給你兩個整數陣列 arr1 arr2 和乙個整數 d 請你返回兩個陣列之間的 距離值 距離值 定義為符合此距離要求的元素數目 對於元素 arr1 i 不存在任何元素 arr2 j 滿足 arr1 i arr2 j d 示例 1 輸入 arr1 4,5,8 arr2 10,9,1,8 d 2 輸出 2...
5348 兩個陣列間的距離值
給你兩個整數陣列 arr1 arr2 和乙個整數 d 請你返回兩個陣列之間的 距離值 距離值 定義為符合此描述的元素數目 對於元素 arr1 i 不存在任何元素 arr2 j 滿足 arr1 i arr2 j d 1.簡單搜尋 class solution object def findthedis...