确定数组的一半以上是否在不同数组中重复

2024-01-07

我正在看以下内容来自 Glassdoor 的问题 http://www.glassdoor.com/Interview/Given-N-credits-cards-determine-if-more-than-half-of-them-belong-to-the-same-person-owner-All-you-have-is-an-array-of-the-QTN_384804.htm:

给定 N 张信用卡,确定其中一半以上是否属于同一个人/所有者。您拥有的只是一个信用卡号数组和一个像 isSamePerson(num1, num2) 这样的 api 调用。

很清楚如何在 O(n^2) 时间内完成,但一些评论者说它可以在 O(n) 时间内完成。有可能吗?我的意思是,如果我们有一系列信用卡号,其中某些数字重复,那么该索赔就有意义。但是,我们需要对每个信用卡号进行 API 调用才能查看其所有者。

我在这里缺少什么?


算法如下:

如果一个项目(这里是一个人)占多数,那么如果您将不相等的项目(以任何顺序)配对在一起,则该项目将被剩下。

  • 从空候选槽开始
  • For every item
    • 如果候选槽为空(计数 = 0),则将其放置在那里。
    • 否则,如果它等于槽中的项目,则增加其计数。
    • 否则减少该槽的计数(弹出一项)。
  • 如果候选人空缺,则不存在明显多数。否则,
  • 计算候选者出现的次数(第二遍)。
  • 如果出现次数超过50%,则宣布获胜,
  • 否则就没有多数。

请注意,如果阈值低于 50%,则不能应用此方法(但应该可以通过保留两个、三个……候选槽并仅弹出不同的三元组、四元组来适应 33%、25% 的阈值…… ...)。

这也适用于信用卡的情况:您所需要做的就是比较两个元素(人)是否相等(通过 API 调用),以及一个能够容纳元素总数的计数器。

时间复杂度:O(N)
空间复杂度:O(1) + input
API 调用:最多 2N-1:每遍一次,第一遍中的第一个元素没有 api 调用。

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

确定数组的一半以上是否在不同数组中重复 的相关文章

  • Dijkstra 算法不生成最短路径?

    我正在使用 Dijkstra 算法解决最短路径问题 我遇到了麻烦 因为该算法应该提供最短路径 但运行该算法后 我手动得到了一条短路路径 这只是该算法的副产品吗 我尝试生成的路径是从 a gt z 这是我通过应用该算法得到的路径 在我访问的每
  • 如何防止 Nil 将容器恢复为其默认值?

    我正在实现一个简单的链表并表示没有下一个节点的事实 我正在使用该值Nil 问题是当分配给容器时 Nil将尝试将容器恢复为其默认值 这意味着我需要使用容器的默认值或Any确定是否已到达链表的末尾 不过 我还是想用Nil 如果只是为了其明确的意
  • 找到不(必要)与二进制矩阵中的图像边界对齐的最大矩形

    我在用这个解决方案 https stackoverflow com questions 2478447 find largest rectangle containing only zeros in an nn binary matrix在
  • 所有可能的骑士在普罗梅拉的棋盘上移动

    是否有可能用马从初始位置 I J 绕过大小为 N N 的棋盘 并且只访问每个方格一次 define A True A I J false active proctype method bit I 4 bit J 3 bit K 1 bit
  • 我的程序替换了链表中所有节点中的所有字符串数据类型

    我有一个程序 基本上将历史记录 节点 添加到员工记录 链接列表 中 这是我的代码 include
  • 识别鼠标移动的算法

    我想知道是否有任何研究 算法可以指定鼠标在识别 等字符时的偏差量使用鼠标绘制 某种光学字符识别 但可能是一个更简单的版本 是否有某种算法可以让我说用户绘制的问号确实是一个问号 而不是其他具有一定准确性的东西 就像 Windows 平板电脑软
  • 直观地执行不同的排序算法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 计算具有 3 个循环的算法的复杂度

    我尝试解决以下练习 以下代码片段最坏情况运行时间的增长顺序是什么 作为 N 的函数 int sum 0 for int i 1 i lt N i for int j 1 j lt i i j for int k 1 k lt j j k s
  • 如何设计一种算法来计算倒数式数学数字难题

    我一直想这样做 但每次我开始思考这个问题时 它的指数性质都会让我大吃一惊 我希望能够理解的问题解决器和代码是针对倒计时数学问题的 给定一组数字 X1 到 X5 计算如何使用数学运算将它们组合起来生成 Y 您可以应用乘法 除法 加法和减法 那
  • Google 文档如何处理编辑冲突?

    我一直在尝试编写自己的 Javascript 编辑器 其功能类似于 Google Docs 允许多人同时使用 我不明白一件事 假设用户 A 和用户 B 直接相互连接 网络延迟为 10 毫秒 我假设编辑器使用 diff 系统 据我了解 Doc
  • 德尔福数据结构

    我可能需要在 Delphi 中做一个项目 并且是该领域的初学者 目前 我正在网上搜索资源 但由于资源站点太少而感到困惑 首先 你能给我一些好的网站 其中包含我迄今为止错过的 Delphi 资源吗 我也在 Delphi 中搜索数据结构 想知道
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • 如何为多边形创建内部螺旋?

    对于任何形状 我如何在其内部创建类似形状的螺旋 这与边界 使用 Minkowski 和 类似 尽管它会是相同形状的螺旋 而不是在形状内部创建相同的形状 我找到了这个 http www cis upenn edu cis110 13su le
  • 在任意时间范围内找到最佳日/月/年间隔的算法?

    如果您有时间表 请说 March 19 2009 July 15 2011 是否有一种算法可以将该时间范围分解为 March 19 2009 March 31 2009 complete days April 1 2009 December
  • “包含字符串”的快速索引

    在我的应用程序中 我有多达数百万个短字符串 大部分短于 32 个字符 我想实现一个带有附加列表的搜索框 该列表仅包含包含在搜索框中输入的整个字符串的元素 如何预先建立索引来快速找到此类字符串 所有排序的 STL 容器都会检查整个字符串 对于
  • 如何在 C# 中以编程方式创建柔和的颜色?

    根据所需的颜色数量均匀分布地生成它们 如果指定的计数为 8 则看起来像这样 List
  • Python 旅行商贪婪算法 [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 因此 我为旅行推销员问题创建了一种排序 并按 x 坐标和 y 坐标进行排序 我正在尝试实施贪婪搜索 但无法做到 此外 每
  • 坐标算法 - 绕中心旋转

    通过查看这张图片 我想您会很好地理解我的问题 图片已删除 网址不再有效 现在返回广告 所以基本上我想要一个函数 它接受一个对象作为参数 并根据我之前添加的对象数量为该对象提供正确的坐标 假设我将所有这些对象添加到一个数组中 objectAr
  • Java 2d 游戏中的路径查找?

    本质上它是我正在开发的一款吃豆人克隆游戏 我有一个 Enemy 类 并创建了该类的 4 个实例 它们都代表游戏的 4 个幽灵 所有幽灵都会在屏幕的随机区域启动 然后它们必须朝着吃豆人角色前进 当玩家控制吃豆人并移动它时 他们应该跟随它并尽可
  • 我应该对算法使用递归还是记忆化?

    如果我可以选择使用递归或记忆来解决问题 我应该使用哪一个 换句话说 如果它们都是可行的解决方案 因为它们提供了正确的输出并且可以在我正在使用的代码中合理地表达 那么我什么时候会使用其中一个而不是另一个 它们并不相互排斥 您可以同时使用它们

随机推荐

  • Fancybox:iframe 不起作用

    非常简单的test html页面
  • HTML5 Canvas - 在画布上拖动文本问题

    我想拖动位于画布上的文本 我找到了一个教程如何拖动矩形 但我无法在文本上实现它 这是以下用于移动矩形的代码 有人可以帮助我在文本上实现它吗 section div div section
  • WSO2 IS 自定义验证器

    我们正在使用 WSO2 IS v5 4 1 我们希望根据外部用户数据存储对用户进行身份验证 所需的步骤 用户使用用户名和密码通过 Oauth 登录 WSO2 IS 登录请求被转发到外部服务 该服务通过给定的用户名和密码对用户进行身份验证 而
  • iPhone 中的翻转过渡

    我在 iPhone 中翻转视图时遇到问题 我在 appDelegate 中有两个视图 我想在用户单击按钮后翻转它们 我有以下代码 CATransition transition CATransition animation transiti
  • 添加 Microsoft Rich Textbox Control 6.0 (SP6) 时出现“对象库未注册”

    我尝试添加Microsoft Rich Textbox Control 6 0 SP6 控制通过项目 gt 组件 在 VB6 集成开发环境中 该控件存在于控件列表中 当我勾选它并单击 确定 应用 时 我得到Object library no
  • 如何使用 AccessibilityService 在 Android 上执行拖动(基于 X、Y 鼠标坐标)?

    我想知道如何在 Android 上基于 X Y 鼠标坐标执行拖动 考虑两个简单的例子 Team Viewer QuickSupport 分别在远程智能手机和 Windows Paint 的笔上绘制 密码图案 我所能做的就是模拟触摸 http
  • Z3 量词支持

    我需要一个定理证明器来解决一些简单的线性算术问题 然而 即使是简单的问题我也无法让 Z3 工作 我知道它不完整 但是它应该能够处理这个简单的示例 assert forall t Int t 5 check sat 我不确定我是否忽略了某些事
  • 将两个 mbtiles 文件连接在一起

    我还没有找到一种方法将两个 mbtiles 文件连接在一起 第一个包含 0 16 的缩放级别 第二个包含 17 的缩放级别 我正在使用不同的 sqlite 管理器 但无论我如何将数据库 2 导出并导入到数据库 1 中 我都没有成功 二进制字
  • linux g++编译器重定向stderr和stdout创建空文件

    我将 g 编译器输出 stderr 和 stdout 重定向到 Linux 上的文件 但它正在创建一个空文件 我在其他一些文章中读到 标准输出不会在每行之后刷新 没关系 但是 stderr 呢 就我而言 运行多个屏幕时出现编译错误 所以 我
  • 如何在实体框架中使用枚举?

    在实体框架中使用枚举的最佳方法是什么 备注 我使用的是 EF 3 和 Firebird 在 EF 4 中有一种更好的方法 https learn microsoft com en us archive blogs alexj 不幸的是 它在
  • 如何在 PHP 中解码 HTML 引用实体

    我有一根绳子 39 71解码时 应包含 71 我用过html entity decode addslashes and htmlspecialchars decode这些都无法让这一切回到 71 年 以下代码是我尝试过的示例 name ht
  • 通过 link_to ruby​​ on Rails 传递参数

    我有这行代码 当我使用 add to cart 方法时 我该如何调用 car car Car new params car 这不起作用 因为它说我正在尝试将其字符串化 我不明白出了什么问题 因为我用它来创建新用户并且效果很好 顺便说一句 汽
  • Java 8 接口/类加载器发生变化?

    我发现 Java 1 7 51 和 Java 1 8 20 之间存在一些困难 初始情况 一个接口 interface InterfaceA public void doSomething 两类 public class ClassA imp
  • Dagger 2 注入 Android 应用程序上下文

    我正在使用 Dagger 2 并且它可以正常工作 但是我现在需要访问Android应用程序上下文 我不清楚如何注入和访问上下文 我尝试按如下方式执行此操作 Module public class MainActivityModule pri
  • .oldValue 控件属性上出现错误 3251

    我目前正在努力向 MS Access 2010 数据库添加审计跟踪 但我正在努力解决 错误 3251 此类型对象不支持操作 这是我的审计跟踪模块的代码 大部分排列的代码来自网络 Public Function auditChanges Re
  • vstest.console.exe 可以在没有安全证书的情况下运行 appx

    我正在尝试在命令行上使用 MSBuild 在构建代理上设置自动构建 我目前关注的两个项目是 UWP 及其关联的单元测试项目 要构建 我必须使用这个 p AppxPackageSigningEnabled false 否则 我收到此错误 er
  • 如何使用CSS 3d矩阵创建弯曲变形效果

    我正在尝试使用 css3 在 ios 中复制吸吮效果 webkit transform matrix3d 财产 但是 我无法像图片中那样管理弯曲边缘 我自己最接近的解决方案如下 webkit transform matrix3d 0 85
  • 面临 XLWT 和 XLRD 的问题 - 同时读写

    我面临 xlrd 和 xlwt 的问题 粘贴示例代码 以下 from xlwt import Workbook Formula XFStyle import xlrd book Workbook sheet1 book add sheet
  • Whatsapp 如何在 iOS 中更快地从地址簿中获取更新的联系人?

    我的发现 我正在设计一个逻辑来与我的后端同步联系人 我浏览了一些在 IOS 中做同样事情的应用程序 我将以 WhatsApp 为例 我发现当我更新 Native Addressbook 中的任何联系人时 它会以一小部分反映到 Whatsap
  • 确定数组的一半以上是否在不同数组中重复

    我正在看以下内容来自 Glassdoor 的问题 http www glassdoor com Interview Given N credits cards determine if more than half of them belo