在非常大的数组中查找重复项的算法

2024-04-21

在一次技术面试中得到了这个问题。 我知道使用(在java中)HashSet解决这个问题的方法。

但当面试官强行说出“”这个词时,我无法理解一个非常大的数组,假设给定数组中有 1000 万个元素".

我需要改变方法吗?如果不是,实现这一目标的效率应该是多少?

PS:算法或实现与语言无关。

谢谢。


有一些关键的事情,面试官希望你回答这样的问题:如果你无法将数组加载到内存中,那么how much I can load。解决问题的步骤如下:

  1. 您需要根据可用内存量来划分数组。
  2. 假设您一次可以加载 1M 个数字。您已将数据拆分为k parts。您加载前 1M 并构建Min Heap它的。然后取下顶部并应用HeapifyMin Heap.
  3. 对数据的其他部分重复相同的操作。
  4. 现在你将有 K 个已排序的分割。
  5. 现在从每个 K 分割中获取第一个数字,并再次构建一个Min Heap.
  6. 现在将顶部从Min Heap并将值存储在temporary variable以及与下一个即将到来的数字进行比较以查找重复项。
  7. 现在,从上次删除编号的同一分割(部分)中获取下一个编号。把这个数字放在上面Min Heap并应用Heapify。
  8. 现在最上面的Min Heap是你的下一个排序数字并将其与temporary variable for finding the duplicates. Update the如果数字不重复,则为临时变量。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在非常大的数组中查找重复项的算法 的相关文章

  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Java列表的线程安全

    我有一个列表 它将在线程安全上下文或非线程安全上下文中使用 究竟会是哪一个 无法提前确定 在这种特殊情况下 每当列表进入非线程安全上下文时 我都会使用它来包装它 Collections synchronizedList 但如果不进入非线程安
  • Windows 窗体:如果文本太长,请添加新行到标签

    我正在使用 C 有时 从网络服务返回的文本 我在标签中显示 太长 并且会在表单边缘被截断 如果标签不适合表单 是否有一种简单的方法可以在标签中添加换行符 Thanks 如果您将标签设置为autosize 它会随着您输入的任何文本自动增长 为
  • 如何从泛型类调用静态方法?

    我有一个包含静态创建方法的类 public class TestClass public static
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • 从 FileReader 设置背景图像样式

    我正在寻找一种解决方案 允许我从文件上传输入中获取文件并通过设置 document body style backgroundImage 来预览它 以下代码用于在 Image 元素中显示预览 function setImage id tar
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Jquery - 选择选项后如何获取选项的特定数据类型?

    我将直接跳到标记 然后解释我想要做什么 HTML 选择选项
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 寻找优秀、可靠玩家的算法

    我有以下玩家 每个值对应于给定游戏中正确答案百分比的结果 players array A gt array 0 0 0 0 B gt array 50 50 0 0 C gt array 50 50 50 50 D gt array 75
  • 从另一个 Jenkinsfile 调用远程 jenkins 文件

    我正在我的组织中设计 Jenkins CICD 管道 我有以下问题 我来自一个 DevOps 团队 负责控制多个开发团队的 Jenkins 管道 我基本上想编写一个具有多个阶段的 Jenkins 文件 可以由多个团队运行 据我所知 这个 J
  • 两个列表中的公共元素

    我有两个ArrayList每个对象都有三个整数 我想找到一种方法来返回两个列表的共同元素 有人知道我该如何实现这一目标吗 Use Collection retainAll https docs oracle com en java java
  • 如何查找正在执行的 AppleScript 的文件名

    如何找到正在执行的 AppleScript 的名称 原因 我想创建一个根据文件名更改其行为的脚本 就像是 if myname is Joe then ACTION1 else if myname is Frank then ACTION2
  • Python 的 re 模块 - 保存状态?

    我发现 Python 中最大的烦恼之一是无法re模块来保存其状态 而无需在匹配对象中显式执行此操作 通常 人们需要解析行 如果它们符合某个正则表达式 则通过相同的正则表达式从中取出值 我想写这样的代码 if re match foo w b
  • Google Chrome 警告:密码表单应包含(可选隐藏)用户名字段以方便访问

    当访问我的单页应用程序的 重置密码 路径并查看 Chrome 浏览器控制台时 我收到以下警告 DOM 密码表单应具有 可选择隐藏 用户名字段以方便访问 更多信息 goo gl 9p2vKq
  • 如何解决 Yelp API 调用中的 CORS 错误?

    我尝试使用 AJAX 调用 Yelp Fusion API 但出现以下错误 有人可以帮我弄清楚这里发生了什么事吗 api yelp com v3 1 加载资源失败 服务器响应状态为 403 index html 1 从源 null 访问 h
  • 我应该使用哪些 gdb 命令来缩小标签“main”中出现分段错误的位置?

    这是我的汇编代码和我的主要子例程 这是我的宏和常量 text fmt string x t t ln x n sfmt string 10lf t 10lf n error string Error filename string inpu
  • 同一 IP 443 端口中的多个域

    我在 IIS 7 的端口 443 https 上托管了一个网站 www example1 com 现在我为同一 IP 的 www example2 com 购买了一个新域 我想在此域中托管另一个网站 www example2 com htt
  • Jquery 获取具有特定类的第 n 个子级

    我有一个 html 表如下 table tr td class take 1 td td 2 td td 3 td td class take 4 td td 5 td td class take 6 td tr tr td class t
  • 如何在 Java 8 中组合不同的流

    我有一个Set
  • 在代码中添加一个定时器,然后循环它

    尝试找到一种方法将计时器添加到我的代码中 然后用计时器不断循环它 例如 尝试通过单击按钮来制作物品 然后等待 5 秒以使其制作 然后只要我有材料 它就会自动开始再次制作 依此类推 我环顾四周的教程 但未能找到我一直在寻找的东西 这是我想要循
  • 专门针对右值的 std::swap

    在标准 20 2 2 utility swap 中 std swap 是为左值引用定义的 我知道这是当你想交换两件东西时的常见情况 但是 有时交换右值是正确且可取的 当临时对象包含引用时 如下所示 交换临时引用元组 https stacko
  • 如何仅定义自定义产品类型的字段 - Woo Commerce Hook

    我的代码显示在所有产品类型中 例如简单产品 可变产品 自定义类型 手段适用于所有人 但我想将其限制为仅适用于我的自定义类型 如何将自定义字段类型限制为英语课程产品类型 add filter product type selector eng
  • Tensorflow 中多维时间序列预测中的向量表示

    我有一个大型数据集 约 3000 万个数据点 具有 5 个特征 我已使用 K 均值将其减少到 200 000 个集群 数据是大约 150 000 个时间步长的时间序列 我想要训练模型的数据是每个时间步上特定簇的存在 预测模型的目的是生成一个
  • 将 Ajax JQuery 选择器保存在数组中

    我对 Ajax 非常陌生 需要帮助将 Ajax 请求中的数据存储到数组中 我在论坛上查看了答案 但无法解决我的问题 Ajax 响应正在进入 responseField val format output response 我想将 outpu
  • 等待多个 future 的回调

    最近我深入研究了一些使用 API 的工作 该API使用Unirest http库来简化从网络接收的工作 当然 由于数据是从 API 服务器调用的 因此我尝试通过使用对 API 的异步调用来提高效率 我的想法结构如下 通过返回 future
  • JDK 17:Switch 语句导致 java.lang.VerifyError:操作数堆栈上的类型错误

    刚刚在 Eclipse 2021 09 上尝试了 JDK17 结果失败并显示java lang VerifyError 这本身并没有多大帮助 我追踪到了一个 switch 语句 它被提供了一个从 a 中取出的值Map或其他泛型类型 如果我在
  • React-native cli 和带有 Bare 工作流程的 Expo 有什么区别? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我将构建一个具有多种复杂功能的非常大的应用程序 但我坚持以下几点 React native cli 和带有 Bare 工作流程的 Expo 有什
  • 在非常大的数组中查找重复项的算法

    在一次技术面试中得到了这个问题 我知道使用 在java中 HashSet解决这个问题的方法 但当面试官强行说出 这个词时 我无法理解一个非常大的数组 假设给定数组中有 1000 万个元素 我需要改变方法吗 如果不是 实现这一目标的效率应该是