判断两个数组是否具有相同成员的算法

2024-03-22

比较两个数组以查看它们是否具有相同成员的最佳算法是什么?

假设没有重复项,成员可以按任何顺序排列,并且都没有排序。

compare(
    [a, b, c, d],
    [b, a, d, c]
) ==> true

compare(
    [a, b, e],
    [a, b, c]
) ==> false

compare(
    [a, b, c],
    [a, b]
) ==> false

显而易见的答案是:

  1. 对两个列表进行排序,然后检查每个列表 元素来查看它们是否相同
  2. 将一个数组中的项目添加到 哈希表,然后迭代 其他数组,检查每个项目 是在哈希中
  3. nickf的迭代搜索算法

您使用哪一个取决于您是否可以首先对列表进行排序,以及您是否有一个好的哈希算法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

判断两个数组是否具有相同成员的算法 的相关文章

  • JS中的递归排序

    在一次采访中 我被要求编写一个程序 算法来使用递归对数字数组进行排序 虽然我含糊地回答了它 但我尝试并想出了以下代码 您可以使用以下JSFiddle https jsfiddle net RajeshDixit 2u9mLegv 1 链接来
  • CSS Hex 到速记十六进制转换

    将十六进制转换为速记十六进制的正确算法是什么 例如 996633很容易被转换为 963 但如果是这样怎么办 F362C3 我的第一个猜测是我只取每种颜色的第一个值并使用它 所以 F362C3变成 F6C 但我不知道如何从数学上证明这种方法的
  • 在 O(nloglogn) 最坏情况时间内对具有 O(logn) 个不同元素的 n 元素数组进行排序

    目前的问题是标题本身的内容 即给出一种算法 该算法在 O log logn 最坏情况时间内对具有 O log n 个不同元素的 n 元素数组进行排序 有任何想法吗 此外 您通常如何处理具有多个非不同元素的数组 O 日志 日志 n 时间足以让
  • 如何读取未知数量的输入?

    我正在使用 C Primer 这本书学习 C In 第1 4 3节 给出了以下关于读取未知数量的输入的示例代码 include
  • 许可证密钥模式检测? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这不是真实情况 请忽略您可能认为适用的法律问题 因为它们并不适用 假设我有一组 200 个已知的有效许可证密钥 用于假设的软件许可算法
  • 使用动态编程理解正则表达式字符串匹配

    我遇到了这个问题 要求您实现一个支持 的正则表达式匹配器 和 其中 匹配任何单个字符 匹配零个或多个前面的元素 isMatch aa a false isMatch aa aa true isMatch aaa aa false isMat
  • 算法的最佳、最差和平均情况运行时间是多少?

    算法的最佳 最差和平均情况运行时间是多少 用最简单的术语来说 对于输入大小为n 最好的情况 最快完成时间 选择最佳输入 例如 排序算法的最佳情况是已经排序的数据 最坏的情况下 完成最慢的时间 选择了消极的输入 例如 排序算法的最坏情况可能是
  • 如何在从左到右、从上到下排序的二维数组中搜索数字?

    我最近收到了这个面试问题 我很好奇有什么好的解决方案 假设我有一个二维数组 其中所有 数组中的数字在增加 从左到右 从上到下的顺序 底部 搜索和搜索的最佳方式是什么 判断目标号码是否在 大批 现在 我的第一个倾向是使用二分搜索 因为我的数据
  • 比较周期性数据的快速方法

    假设我有任意类型的数据集 A B C D 并且我想将其与另一个数据集进行比较 我希望 A B C D B C D A C D A B 和 D A B C 的比较成立 但是不适用于 A C B D 或任何其他未类似排序的集合 有什么快速方法可
  • 用 ruby​​ 解决旅行商问题(50 多个位置)

    我在一家快递公司工作 目前 我们 手动 解决了 50 多个地点的路线 我一直在考虑使用 Google Maps API 来解决这个问题 但我读到有 24 点的限制 目前我们在服务器中使用 Rails 因此我正在考虑使用 ruby 脚本来获取
  • 算法:最大计数器

    我有以下问题 您有 N 个计数器 最初设置为 0 并且您对它们有两种可能的操作 increase X 计数器 X 加 1 max counter 所有计数器都设置为任何计数器的最大值 给出一个包含 M 个整数的非空零索引数组 A 该数组代表
  • 如何对数组进行排序(索引)以使用这些索引将原始数组从最小到最大值排序

    例如我有这个数组 int a 6 10 16 11 7 12 3 9 8 5 我想像这样对其索引进行排序 6 9 0 4 8 7 1 3 5 2 所以我可以使用索引将 a 从最小到最大值排序 在我的代码中我得到了这个 6 9 4 8 7 4
  • O(mn) 比 O((m+n)^2) 更好吗?

    算法的输入是m and n 我的算法的时间复杂度是O mn 我有一个时间复杂度为的基准算法O m n 我的实现在时间复杂度方面是否优于基准 许多评论者和回答者希望只考虑以下情况 m n或者至少当它们通过一个常数因子相关时 这不是它的工作原理
  • 在 O(n) 时间内运行的指数乘法算法?

    我正在读一本算法教科书 我被这个问题难住了 假设我们要计算值 x y 其中 x 和 y 为正数 分别具有 m 和 n 位的整数 解决该问题的一种方法是执行 y 1 乘以 x 你能给出一个仅使用 O n 乘法步骤的更有效的算法吗 这会是一个分
  • 4 x 3 锁图案

    我遇到了这个 它要求计算在 4x3 网格中可以制作特定长度的锁定图案的方式数 并遵循规则 可能有些点不能包含在路径中 有效的模式具有以下属性 图案可以使用第一次接触的点序列来表示 与绘制图案的顺序相同 从 1 1 到 2 2 的图案与图案不
  • 如何使用KDTrees实现最近邻搜索?

    所以 我正在实施一个KD Tree http en wikipedia org wiki Kd tree进行最近邻搜索 我已经构建了树部分 但我认为我没有完全理解搜索部分 关于遍历树来搜索邻居 维基百科文章如下 Starting with
  • 用于插入/删除/排名/选择查询的最佳数据结构/算法

    到目前为止 我知道像AVL树和红黑树这样的自平衡BST可以在O log n 次内完成这些操作 然而 要使用这些结构 我们必须自己实现AVL树或RB树 我听说有一个算法 实现这四个操作而不使用自平衡 BST 有了我们自己定义的结构 我们就需要
  • 如何计算两个ip之间的主机数量? C#

    我有两个ip 1 1 1 1 1 2 4 4 4 4 显然这只是一个例子 这是一个动态计算器 如果子网掩码不相关 我如何计算所述 ip 之间的主机数量 要计算 理论 IP 地址的数量 您需要将每个 IP 地址转换为其 32 位整数格式 这实
  • 如何在Scala中实现尾递归快速排序

    我写了一个递归版本 def quickSort T xs List T p T T gt Boolean List T xs match case Nil gt Nil case gt val x xs head val left righ
  • 合并字符数组中的最小重复次数

    假设我有两个数组 我想合并它们 以便合并后的数组具有最小重复次数 例如 x x 是重复 arr1 x d d m f m arr2 d d x f f m 唯一的条件是在合并数组中 元素来自arr1 and arr2必须出现在各自的订单中a

随机推荐

  • CPU利用率和能耗之间有什么关系?

    描述 CPU 利用率和能源消耗 电 热方面 之间关系的函数是什么 我想知道它是否是线性 次线性 exp 等 我正在编写一个程序 可以降低其他程序的 CPU 利用率 负载 我主要关心的是我能在能源方面受益多少 此外 我的服务器主要用作数据中心
  • HTTP 慢速发布和 IIS 设置以防止

    因此 我们从一家安全公司收到了这份报告 称我们在 IIS 8 0 上运行的 MVC 网站容易受到慢速 HTTP post DoS 攻击 报告指出我们应该 限制请求属性是通过
  • 如何等待猫鼬查询的结果?

    我尝试根据猫鼬查询的结果过滤数组 标准过滤器函数期望回调返回 true 或 false 我的麻烦是这个信息取决于 mongoose findOne 查询的异步结果 code that does not work myArray filter
  • PageSpeed 指责脚本在使用外部图像时存在“渲染阻塞”

    我在页面正文的结束标记之前放置了一个来自 CDN 的脚本 上面 谷歌的 PageSpeed Insights 说 消除首屏内容中阻碍渲染的 JavaScript 和 CSS您的页面有 1 个阻止脚本资源 这会导致页面渲染延迟 我在结束之前就
  • 使用 Visual Studio 2008 错误创建输出文件夹

    我有很多项目的解决方案 实际上有一个核心项目和一些插件 我更改了所有插件的 OutputPath 因此所有二进制文件最终都位于 Core bin debug 文件夹中 这是必要的 因为核心没有对插件的引用 因此它在编译时不会 包含 插件二进
  • Cocoa应用程序菜单-如何重新创建?

    在 MainMenu xib 中 我删除了默认的主菜单 它会自动为您提供应用程序菜单 以及文件 编辑 格式 查看 窗口 帮助菜单 我需要采取哪些步骤才能将其添加回我的应用程序中 我将创建一个新应用程序 然后仅复制Main Menu回到你的M
  • 如何限制Java 8应用程序消耗的总内存?

    为了限制 Java 7 应用程序消耗的总内存 我可以使用以下公式 取自本文 https plumbr eu blog why does my java process consume more memory than xmx 最大内存 Xm
  • VB6:如何从日期类型中删除时间部分

    我有一个Date还包含时间的变量 Dim dt As Date dt 8 3 2016 7 10 40 AM gt 以某种方式删除时间 所以结果应该是 dt 8 3 2016 怎么去掉时间呢 对于另一个日期类型变量 dt DateValue
  • Rails 3 ActiveRecord:UNION

    有没有办法在 Rails 3 中使用 MySQL UNION 我认为让其工作的唯一方法是直接执行查询 ActiveRecord Base connection execute SELECT REPEAT a 1 UNION SELECT R
  • 根据组枚举mysql中的行

    我有一组记录 例如 A B 1 5 1 6 1 9 2 1 2 8 其中我们有两个组 A 1 和 A 2 组内记录按 B 中的值排序 我需要在每个组中添加一个带有枚举的列 A B C 1 5 1 1 6 2 1 9 3 2 1 1 2 8
  • 将父类强制转换为子类

    我有 Message 类 我已经扩展并添加了新属性 class ChildMessage Message prop 在尝试将消息类添加到 ChildMessage 列表时 我得到添加类的 Null 引用 var myChildList ne
  • BMI计算器C代码[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我正在尝试编写一个简单的 BMI 计算器 但出于某种原因 当我尝试身高 175 公式为 1 75 和体重 70 时 它应该给出 2
  • 使用 OpenXmlReader

    我讨厌诉诸 StackOverflow 来获取如此 看似 基本的东西 但过去几个小时我一直在与 Microsoft 斗争 似乎陷入了死胡同 我正在尝试阅读 大型 Excel 2007 电子表格 Google 友好地告诉我 使用 OpenXm
  • UITableview:单击自定义按钮时动态更改单元格高度

    我有一个 UITableview 其中每个单元格都有一个按钮 我的问题是 如果我单击第一行中的按钮 单元格的高度会增加 然后我单击 tableviewcell 中的另一个按钮 已展开的单元格高度将减小 选定的单元格高度将增加 尝试此链接后U
  • Ruby on Rails:符号作为 form_for 中的参数

    我明白传递给的是什么form for执行以下操作时的方法 if user在控制器中设置 这是很明显的 但当我们经过时会发生什么 user 正如我在很多例子中看到的那样 我什么时候应该使用符号版本 使用该符号将生成
  • Objective C 类通过工厂方法继承

    我想继承一个具有工厂方法的框架类 如何使工厂方法返回我继承的类类型的对象 我发现这篇有用的文章 http qualitycoding org factory method 它描述了类似的情况 但在他们的情况下你可以控制超类 我怎么能写 比如
  • 我可以使用临时的右值引用吗?这是未定义的行为吗?

    更新问题为什么这两个右值引用示例有不同的行为 https stackoverflow com questions 35315472 why this two rvalue references examples have different
  • java.util.List 的降序迭代器

    链表可以使用升序或降序迭代器进行迭代 如下所示 LinkedList list new LinkedList StringJoiner sJ1 new StringJoiner list iterator forEachRemaining
  • 在Java 线程中使用PreparedStatements 是否正确?

    我还是一名本科生 只是在做兼职 所以我总是试图了解更好的做事方法 最近 我必须编写一个工作程序 其中程序的主线程将生成 任务 线程 对于每个数据库 任务 记录 该线程将执行一些操作 然后更新记录以表明它已完成 因此 我需要 Threaded
  • 判断两个数组是否具有相同成员的算法

    比较两个数组以查看它们是否具有相同成员的最佳算法是什么 假设没有重复项 成员可以按任何顺序排列 并且都没有排序 compare a b c d b a d c gt true compare a b e a b c gt false com