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

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(使用前将#替换为@)

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

  • 快速查找具有最大总不同元素的列表列表的子集

    给定元组列表的列表 我想找到列表的子集 该子集最大化不同整数值的数量 而不重复任何整数 该列表看起来像这样 x 1 2 3 8 9 10 15 16 2 3 10 11 9 10 11 17 18 19 20 21 22 4 5 11 12
  • XML 模式文件中 xs 和 xsd 之间的区别?

    两者有什么区别xs and xsdXML 模式文件中的前缀 From w3 org 上的 XSD 1 0 规范 http www w3 org TR xmlschema 1 Instance Document Constructions 模
  • 如何测试哈希函数?

    有没有办法测试哈希函数的质量 我希望在哈希表中使用时具有良好的分布 如果这可以在单元测试中验证 那就太好了 EDIT 为了澄清 我的问题是我已经使用了longJava 中的值的方式是第一个 32 位编码一个 ID 第二个 32 位编码另一个
  • 在 Perl 中确定范围重叠的最快方法

    我有两组范围 每个范围都是一对整数 开始和结束 表示单个较大范围的某些子范围 两组范围的结构与此类似 当然 将替换为实际数字 a ranges a 1 gt start gt end gt a 2 gt start gt end gt a
  • 检测重复文件

    我想检测目录树中的重复文件 当发现两个相同的文件时 将仅保留其中一个重复文件 并删除其余的重复文件以节省磁盘空间 重复是指具有相同内容的文件 但文件名和路径可能不同 我正在考虑为此目的使用哈希算法 但不同的文件有可能具有相同的哈希值 因此我
  • 良好的线性代数包[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在为一个项目实现一些谱图算法 其中很大一部分是查找大型稀疏矩阵以及乘法矩阵的特征值和特征向量 我的问
  • 线性模式匹配算法?

    我有一个由 0 和 1 组成的线性列表 我需要匹配多个简单模式并找到第一个出现的情况 例如 我可能需要找到0001101101 01010100100 OR 10100100010长度为 800 万的列表内 我只需要找到第一次出现的情况 然
  • 给定一个数字 0-9 的数组和一个整数 n,找到可由输入数组组成且小于 n 的所有整数

    问题是这样的 给你一个数字 0 9 的数组和一个整数n 该数组可能包含任何给定数字的重复项 找到所有可以通过连接输入数组中的数字形成的整数并且小于n 输入数组中的数字可以在输出的元素中重复 例如 输入为 2 5 8 且 n 223 则输出应
  • 找到经过大多数点的直线的最有效算法是什么?

    问题 N 个点在二维平面上给出 同一个点上最多有多少个点straight line The problem has O N2 solution go through each point and find the number of poi
  • java中的散列是如何工作的?

    我正在尝试弄清楚java中的哈希值 例如 如果我想在哈希图中存储一些数据 它是否会有某种带有哈希值的底层哈希表 或者 如果有人能够对哈希的工作原理给出一个很好且简单的解释 我将非常感激 HashMap 基本上在内部实现为数组Entry 如果
  • 动态前缀和

    是否有任何数据结构能够返回数组的前缀和 1 更新元素以及向数组插入 删除元素 所有这些都在 O log n 内 1 前缀和 是从第一个元素到给定索引的所有元素的总和 例如 给定非负整数数组8 1 10 7前三个元素的前缀和是19 8 1 1
  • 在skiena的书中给出的关于应用dfs在图中查找循环的代码中存在错误

    这是dfs的代码 bool processed MAXV 1 which vertices have been processed bool discovered MAXV 1 which vertices have been found
  • 求从1到N的所有数字的数字之和[重复]

    这个问题在这里已经有答案了 问题 求1到N 包括两端 所有数字的数字之和 时间复杂度应该是 O logN 对于 N 10 总和为 1 2 3 4 5 6 7 8 9 1 0 46 对于 N 11 总和为 1 2 3 4 5 6 7 8 9
  • 可被 N 整除的最小正数

    1 如何找到能被N整除的最小正数 并且它的各位数字和应该等于N 例如 N 结果 1 1 10 190 并且算法时间不应超过 2 秒 有什么想法 伪代码 pascal c 或 java 吗 设 f len sum mod 为 bool 这意味
  • MongoDB 全文搜索分数“分数是什么意思?”

    我正在为我的学校开发一个 MongoDB 项目 我有一个句子集合 我进行正常的文本搜索以查找集合中最相似的句子 这是基于评分的 我运行这个查询 db sentences find text search any text score met
  • 为什么循环引导迭代算法的数组大小必须为 3^k+1?

    The 循环引导迭代算法 http www geeksforgeeks org an in place algorithm for string transformation 是一种通过将所有偶数项移至前面并将所有奇数项移至后面同时保留其相
  • 创建简单和弦进行的算法

    我正在制作一个程序 根据 C 大调音阶的随机基本和弦进行生成随机简单的旋律 从这个音阶生成 4 个三和弦的和弦进行的好方法是什么 从音阶中生成 4 个完全随机的三元组 从 7 个现有的三元组中 通常听起来不太好 我需要一种方法来生成听起来不
  • JAVA实现AVL树

    我想用Java实现一个AVL树 这是我到目前为止所拥有的 public class AVLNode private int size The size of the tree private int height The height of
  • 如何判断鼠标指针是否位于贝塞尔曲线和直线定义的路径内?

    我有一条由多条贝塞尔曲线和直线段组成的闭合路径 如何判断鼠标指针的当前位置是在路径内部还是外部 Example of mouse leaving the area Example of mouse entering the area 首先
  • 在逻辑回归中使用排名数据

    当我努力学习这些概念时 我将对此给予最大赏金 我正在尝试在逻辑回归中使用一些排名数据 我想使用机器学习来制作一个简单的分类器来判断网页是否 好 这只是一个学习练习 所以我不期望有很好的结果 只是希望学习 过程 和编码技术 我已将数据放入 c

随机推荐

  • 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