在 O(n) 时间和 O(1) 额外空间内找到最大重复数

2024-01-05

在 O(n) 时间和 O(1) 额外空间内找到最大重复数(出现次数最多的数) .

我认为我可以使用维护计数数组的计数排序阶段,然后可以在 O(N) 中完成。我对吗 ?

但如何处理多余的空间。还有其他高效的算法吗?


如果没有进一步了解数组中可能的数字,我认为这是不可能的。为了直观起见,请考虑以下事项:对于您准备使用的任何恒定内存量(c = O(1)) 存在一个序列使得在点n-1c+1正确答案的可能性,只有最后一个数字才能打破平局。在这种情况下,具有恒定内存的算法c无法一次性找到答案。这对于多次(恒定数量)的通过类似地起作用。

让我们看看我们能做什么。

  • 如果我们知道最多有k唯一的数字,我们可以找到答案O(n) with O(k)通过保留计数数组(或具有恒定查找成本的无序映射,如果k数字不必是连续的)。但如果我们无法约束k以外k<n这变成O(n)在最坏的情况下有额外的空间。
  • 如果我们对数组进行排序O(n log(n)),然后我们可以找到答案O(n)。所以总复杂度是O(n log(n)) with O(1)额外的空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 O(n) 时间和 O(1) 额外空间内找到最大重复数 的相关文章

  • 为什么静态数组的大小不能可变?

    相关但不完全重复 因为它讨论了 C 我们可以给静态数组的大小一个变量吗 https stackoverflow com questions 7696591 can we give size of static array a variabl
  • 在php中遍历数组[重复]

    这个问题在这里已经有答案了 可能的重复 循环数组的数组 https stackoverflow com questions 8055123 loop an array of array 所以我知道如何遍历偶数 key gt value 关联
  • 数组名或函数名何时“转换”为指针? (在C中)

    1 误解 每当用 C 语言声明一个数组时 都会有一个指向该数组第一个元素的指针created 数组的名称 隐式 是吗 我不这么认为 前两行this http ee hawaii edu tep EE160 Book chap7 subsec
  • 按顺时针顺序对四个点排序

    数组中的四个 2D 点 我需要按顺时针顺序对它们进行排序 我认为只需一次交换操作就可以完成 但我还没有能够正式放下这一点 编辑 在我的例子中 这四个点是凸多边形 编辑 这四个点是凸多边形的顶点 它们不必按顺序排列 如果你想从更数学的角度来看
  • 为什么当我取消引用数组指针时,结果值是指向数组第一个元素的指针,而不是整个数组对象?

    include
  • 使用具有来自平面数字数组的最大和的子数组填充数组

    我需要填充一个数组 其中可能包含不确定数量的子数组 托盘 每个子数组的最大尺寸为 265 厘米 我有一个整数 包 的平面数组 需要在托盘中进行最佳排列 例如 50 厘米 45 厘米 30 厘米 如何动态创建一个系统来创建代表具有最佳空间优化
  • 如何在 Swift 中按换行符分割字符串

    我有一个从文本文件中获得的字符串 文本文件 Line 1 Line 2 Line 3 我想将其转换为数组 每行一个数组元素 Line 1 Line 2 Line 3 根据文件的保存方式 字符串可能采用以下形式之一 string Line 1
  • 如何创建通用原始数组?

    这是来自以下问题创建泛型数组的两种方法 https stackoverflow com questions 17204788 two methods for creating generic arrays 通过给定的两种方法 Suppres
  • Swift3 中的数组排序

    在我的代码中 我有一个如下所示的结构 struct Object var name String var count Int 我现在正在创建一个包含 10 个对象的数组 这些对象具有随机名称和随机计数 有没有一个简单的方法a 按字母顺序对它
  • ReactJS - 排序 - TypeError: 0 是只读的

    我试图在将对象映射到reactjs之前对其进行排序 但每次这样做时 我都会不断收到 TypeError 0 is read only 我注意到加载时 props 是空的 但即使当我试图检查数组的长度并且仅在它大于 0 时应用排序 或者当数组
  • 如何在Java中扩展数组而不更改其名称

    我想知道是否可以在 Java 中扩展数组而不更改其名称 因为我有多个方法链接到该数组 我正在考虑创建一个同名但两倍大的新数组 然后将第一个数组中的所有元素复制到第二个数组 这可能吗 基本上我想创建一个包含银行账户的数组 如果客户创建了太多账
  • FilesystemIterator 中的顺序

    http php net manual en class filesystemiterator php http php net manual en class filesystemiterator php 我注意到FilesystemIt
  • C 中每 N 个元素中出现次数最多的元素

    我有一个大小为 0 8388608 的大数组 A 其中包含 相对较小 的整数 A i 0 131072 我想找到每个 N 32 个元素中最常出现的元素 什么会更快 A 创建一个大小为131072的关联数组B 迭代32个元素 递增B A i
  • 如何在打字稿中将枚举转换为键、值数组?

    var enums 1 HELLO 2 BYE 3 TATA 我希望能够将其转换为如下所示的数组 number 1 word HELLO number 2 word BYE number 3 word TATA 我看到的所有解决方案都形成一
  • JavaScript 在对象中创建数组并将数据推送到数组

    我是编程新手 我正在尝试 React 并具有函数 addComment 当用户向新闻添加评论时执行该函数 此时我需要创建一个属性comments 数组 并分配或推送到该数组输入评论值价值 但现在我只重写了数组的 0 个元素 无法添加新元素
  • 将 jQuery 数组字符串转换为 PHP 数组

    首先 我得说我对 PHP 还很陌生 我正在尝试获取一个可以使用 foreach 的 PHP 对象 以下字符串通过 ajax 传递 我正在尝试转动以下字符串 menu title TEST1 href title TEST2 href QWE
  • RestSharp反序列化JSON内容(代表一个对象包含字节数组)错误

    Client端收到正式的JSON内容 Id 1 2 3 Size 56 但在反序列化字节数组时出现错误 1 下面的语句出现错误 IRestResponse
  • 将 numpy 数组转换为 numpy 数组的数组

    如何转换 numpy 数组a到 numpy 数组b以 num Pythonic的方式 理想情况下 解决方案应该适用于任意维度和数组长度 import numpy as np a np arange 12 reshape 2 3 2 b np
  • 将多个数组合并为一个数组

    如何将多个数组合并为一个二维数组 鉴于我有以下输入 var arr1 1 2 3 var arr2 a b c var arr3 aa bb cc 我需要这样的输出 1 a aa 2 b bb 1 c cc 我认为你想要的是将三个数组组合成
  • Qcut Pandas:ValueError:Bin 边缘必须是唯一的

    我使用 Pandas 中的 Qcut 将数据离散化为大小相等的存储桶 我想要有价格桶 这是我的数据框 productId sell prix categ popularity 11997 16758760 0 28 75 50 524137

随机推荐

  • 如何为 springdoc swagger-ui HTML 页面配置自定义 URL?

    将 springdoc openapi ui 依赖项添加到我的 Spring 项目 不是 Spring Boot 后 将生成 OpenAPI V3 文档 并且可以使用默认的 swagger ui 页面查看 localhost 8080 sw
  • 从 std::async 返回的 std::future 在超出范围时挂起

    我正在使用以下组合std async and std future from C 11 我用来对我在代码中执行的某个活动强制执行 time outmight我尝试连接到服务器时需要一些时间 代码如下 include
  • 当我在 PHP 中使用 session_regenerate_id(true) 时,session_destroy 会带来什么附加价值?

    我一直在阅读手册和网络上的各个页面 包括这里的很多问题 然而 我仍然无法理解这个概念session destroy 在 PHP 中与其他取消设置会话数据的方法结合使用 考虑这个网站从不注册会话变量之外的 SESSION超全局数组 sessi
  • 自动从 XML 模式创建 GUI

    我必须编写一个桌面应用程序来编辑 XML 文件中存储的数据 该格式由 XML 架构文件 xsd 定义 格式相当复杂 有没有可以自动生成基本GUI的工具 目前尚未决定使用哪种语言 我有使用 wxWidgets 的 Python 和 C 以及使
  • 为什么“npm run dev”不能在新的“npx create-next-app”上工作?

    我刚刚创建了一个新的 Next 应用程序npx create next app 看起来已经成功运行了 npx create next app 8 46 31 npx installed 1 in 8 826s What is your pr
  • 使用 LINQ 逐字读取文本文件

    我正在学习 LINQ 并且想使用 LINQ 逐字阅读文本文件 比如说电子书 这就是为什么我可以想出 static void Main string content File ReadAllLines text txt var query f
  • 处理 ASP.NET MVC 中的路由错误

    我知道如何设置自己的路由 但是如何处理路由表漏洞中的路由呢 我的意思是 我猜默认 controller action id 路线可能是一个通用的包罗万象的东西 但我不确定这是否是正确的方法 我喜欢让我的用户知道他们请求的数据 页面 不存在
  • 使用 JSONPath 过滤 JSON 文档中的属性

    我有一个任意定义的 JSON 文档 并且我希望能够应用JSONPath https goessner net articles JsonPath 类似于属性白名单过滤器的表达式 所有选定的节点和他们的祖先回到根节点保留 所有其他节点都被删除
  • MIPS 中的递归函数如何工作?

    我是 MIPS 的新手 因为我开始为大学学习 MIPS 汇编 并且在理解 MIPS 中的递归函数如何工作方面遇到了问题 例如 我有这个程序 用 C 语言 可以用 MIPS 编写 int fact int n if n lt 1 return
  • C# 9.0 记录 - ToString 不继承

    考虑 the ratioale for Wrapper is that it has a Json serializer that serialize through Field not included in this example r
  • 在 cpp 文件的匿名命名空间中使用模板函数是否正确?

    我想在 cpp 文件的匿名命名空间内有一个模板函数 纯粹作为不同大小的 std array 类型的辅助函数 此函数不得在该翻译单元之外的任何地方使用 令我惊讶的是 当我在 MSVC 14 1 简化代码 中尝试时 它立即生效 namespac
  • R中which.max函数的容差是多少?

    基于我在这里讨论的一个问题 https stackoverflow com a 57364028 2725773 https stackoverflow com a 57364028 2725773我想知道的公差 精度是多少which ma
  • Redux - 管理预加载状态

    我正在构建一个应用程序 我需要预加载people and planet data 将来可能会增加更多预载要求 在启动应用程序时 我希望在代表应用程序全局状态的商店中具有价值loaded
  • WebClient 下载文件显示错误的百分比

    我正在使用一个System Net WebClient在我的应用程序中异步下载文件 由于某种原因 在某些系统上 百分比计算错误 我的 更新的 DownloadProgressChanged 事件 WebClient client new W
  • unique_ptr::get() 而不是 &* 有什么用?

    我在用着unique ptr管理一些资源以便在任何情况下都能安全销毁 等等 void do something BLOB b unique ptr
  • 在Windows服务器中使用Word对象

    我有 asp net 应用程序 它有时会获取 Word 文档 编辑其中的一些数据并将其发送到电子邮件 虽然这在我有 microsoft word 的本地计算机上运行良好 但当我尝试在没有安装 microsoft word 的 Windows
  • 如何在 Java 中将 YAML 转换为 JSON?

    我只想使用 Java 将一个包含 yaml 的字符串转换为另一个包含相应转换后的 json 的字符串 例如假设我有这个yaml的内容 paper uuid 8a8cbf60 e067 11e3 8b68 0800200c9a66 name
  • Undertow上传多部分文件超过设置值时抛出RuntimeException

    我正在运行完整版本的 Spring boot 上传文件指南春季指南 https spring io guides gs uploading files 但我使用 Undertow 作为嵌入式 servlet 而不是默认的 Tomcat 它奏
  • 如何在php中创建html表格

    我有以下代码片段 基本上使用爆炸来拆分这些值 数据 prod txt PREFIX abc PART null FILE myprojects school out data feed abc 2010120810 gz2 PREFIX e
  • 在 O(n) 时间和 O(1) 额外空间内找到最大重复数

    在 O n 时间和 O 1 额外空间内找到最大重复数 出现次数最多的数 我认为我可以使用维护计数数组的计数排序阶段 然后可以在 O N 中完成 我对吗 但如何处理多余的空间 还有其他高效的算法吗 如果没有进一步了解数组中可能的数字 我认为这