当前位置:网站首页>LeetCode简单题之两个数组间的距离值
LeetCode简单题之两个数组间的距离值
2022-07-31 02:56:00 【·星辰大海】
题目
给你两个整数数组 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
解释:
对于 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
示例 2:
输入:arr1 = [1,4,2,3], arr2 = [-4,-3,6,10,20,30], d = 3
输出:2
示例 3:
输入:arr1 = [2,1,100,3], arr2 = [-5,-2,10,-3,7], d = 6
输出:1
提示:
1 <= arr1.length, arr2.length <= 500
-10^ 3 <= arr1[i], arr2[j] <= 10^3
0 <= d <= 100
来源:力扣(LeetCode)
解题思路
根据题目的要求可知,数组1中的元素分别和数组2中的元素求绝对距离,如果数组1中的某个元素与数组2的所有元素的距离都符合要求,那么可以计数为1。在这里一个简单的思路就是将数组2排序,然后查看数组1中的元素应该在数组2中的位置,然后探查其前后两个元素与其的距离,如果这两个距离都符合要求那么剩下的元素自然也符合要求。
class Solution:
def findTheDistanceValue(self, arr1: List[int], arr2: List[int], d: int) -> int:
arr2.sort()
count=0
for i in arr1:
index=bisect.bisect(arr2,i)
if index==0:
if abs(i-arr2[index])>d:
count+=1
elif index==len(arr2):
if abs(i-arr2[index-1])>d:
count+=1
else:
if abs(i-arr2[index-1])>d and abs(i-arr2[index])>d:
count+=1
return count

边栏推荐
猜你喜欢

8. Unified exception handling (controller notifies @ControllerAdvice global configuration class, @ExceptionHandler handles exceptions uniformly)

MPPT solar charge controller data collection - through the gateway acquisition capacity battery SOC battery voltage, wi-fi

7、私信列表

Mysql 45讲学习笔记(二十五)MYSQL保证高可用
![[Android] Room - Alternative to SQLite](/img/52/0bc1c0a3173da6d39224ad8440a462.png)
[Android] Room - Alternative to SQLite

加密公司向盗窃的黑客提供报价:保留一点,把剩下的归还

Discourse Custom Header Links

经典链表OJ强训题——快慢双指针高效解法
![LeetCode 1161 最大层内元素和[BFS 二叉树] HERODING的LeetCode之路](/img/56/fcc8ee6f592abf0a374fc950a3362f.png)
LeetCode 1161 最大层内元素和[BFS 二叉树] HERODING的LeetCode之路

CorelDRAW2022精简亚太新增功能详细介绍
随机推荐
华为分布式存储FusionStorage知识点总结【面试篇】
Thesis framework of the opening report
经典链表OJ强训题——快慢双指针高效解法
Discussion on Service Commitment of Class Objects under Multithreading
刚出道“一战成名”,安全、舒适一个不落
The Sad History of Image Processing Technology
Maximum area of solar panel od js
STM32CUBEMX开发GD32F303(11)----ADC在DMA模式下扫描多个通道
冒泡排序、选择排序、直接插入排序、二分法查找
6、显示评论和回复
IIR滤波器和FIR滤波器
Number 16, top posts
YOLOV5学习笔记(二)——环境安装+运行+训练
16、热帖排行
Unity3D Button 鼠标悬浮进入与鼠标悬浮退出按钮事件
10 Permission introduction
AtCoder Beginner Contest 261 部分题解
[Android] Room - Alternative to SQLite
【HCIP】ISIS
The simulation application of common mode inductance is here, full of dry goods for everyone