【问题标题】:Find the minimum difference between two arrays [closed]找到两个数组之间的最小差异[关闭]
【发布时间】:2010-12-10 18:42:21
【问题描述】:

给定两个排序数组 A 和 B,找出 i,j 的 |A[i] - B[j]|是最小值。

【问题讨论】:

  • 请把你想知道的问题写成问题!
  • 给出 2 道作业题,你必须……至少自己尝试一下。
  • 他想知道找到两个不同数组中任意两个项目之间最小距离的最有效方法。
  • 按升序或降序排序会有所不同。是哪个?
  • 为什么要匆忙关闭?这一个真正的问题。它含糊、不完整、过于宽泛或修辞。它可以以其当前的形式得到合理的回答。

标签: algorithm


【解决方案1】:

由于数组已排序,您可以使用 2 个指针(每个数组一个)传递它们。如果|A[i+1] - B[j]| < |A[i] - B[j+1]| 则递增i,否则递增j。继续,直到您到达其中一个数组的末尾。随时跟踪最小索引。

【讨论】:

  • 这段代码最坏情况下的运行时间复杂度是多少?应该是n^2,不是吗?
  • O(nlogm):对于A中的每个元素,使用Binary Search方法找到数组B中值最接近的元素。
  • 我如何自己找出这样的答案?你是用什么方法解决的?
  • 如果 |A[0]- B[0]|小于所有其他差异。也许你应该添加极端情况来比较数组的前两个元素,除了它对我来说看起来不错。
猜你喜欢
  • 2021-03-22
  • 1970-01-01
  • 2021-06-27
  • 1970-01-01
  • 2019-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 2016-07-21
相关资源
最近更新 更多