当前位置: 首页 > news >正文

LeetCode 1385.两个数组间的距离值

题目

给你两个整数数组 arr1 , arr2 和一个整数 d ,请你返回两个数组之间的 距离值 。

距离值 定义为符合此距离要求的元素数目:对于元素 arr1[i] ,不存在任何元素 arr2[j] 满足 |arr1[i]-arr2[j]| <= d 。

思路:对于 arr1​ 中的元素 x,如果 arr2​ 没有在 [x−d,x+d] 中的数,那么答案加一。

方法:把 arr2从小到大排序,这样我们可以二分查找。遍历 arr1,设 x=arr1[i],在 arr2中二分查找 ≥x−d 的最小的数 y。如果 y 不存在,或者 y>x+d,那么说明 arr2没有在 [x−d,x+d] 中的数,答案加一。

代码

class Solution {public int findTheDistanceValue(int[] arr1, int[] arr2, int d) {Arrays.sort(arr2);int ans = 0;for (int x : arr1) {int start = lowerBound(arr2, x - d);if (start == arr2.length || arr2[start] > x + d) {ans++;}}return ans;}private int lowerBound(int[] nums, int target) {int left = 0, right = nums.length - 1;while (left <= right) {int mid = left + (right - left) / 2;if (nums[mid] < target) {left = mid + 1;} else {right = mid - 1;}}return left;}
}

性能

相关文章:

  • 基于深度强化学习的智能机器人路径规划系统:技术与实践
  • 车载软件架构 --- 汽车中央控制单元HPC软件架构方案实例
  • 用于汽车毫米波雷达的四维高分辨率点云图像
  • 【MPC】模型预测控制笔记 (3):无约束输出反馈MPC
  • Seelen UI 是Windows 桌面开发
  • 深度学习进化史:从神经元的诞生到万亿参数的觉醒
  • 电阻篇---上拉电阻的取值
  • Java垃圾回收机制
  • 1.17 模板引擎EJS
  • 如何可视化机器学习模型:从线性回归到神经网络
  • 学习日记-day30-6.15
  • 山东大学软件学院创新项目实训开发日志——第十七周(二)
  • 手写muduo网络库(九):TcpConnection
  • 如何使用configure脚本安装PBS
  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 组策略关闭 Windows 防火墙指南(企业版/专业版)
  • SpringMVC系列(一)(介绍,简单应用以及路径位置通配符)
  • 机器学习实验报告5-K-means 算法
  • Linux--存储系统探秘:从块设备到inode
  • 影视剧学经典系列-梁祝-陶渊明《感士不遇赋并序》
  • wordpress 优惠主机/正规的关键词优化软件
  • 网站开发哪家公司比较好/电商怎么推广自己的产品
  • 我想创建一个网站/如何实现网站的快速排名
  • 营销策划是做什么/太原百度搜索排名优化
  • 知名企业门户网站建设服务公司/产品宣传推广策划
  • 企业网站优化兴田德润/百度指数分析官网