数组中最常见的值

2023-12-14

我将如何找到数组中三个最常见的元素?我正在处理长度为 10,000 的数组,其元素 = 0-100 之间的随机整数。

我正在考虑使用两个数组,其中一个长度为 100,并且通过使用 if 语句来递增。但是,我想知道是否有一种方法可以仅使用一个 for/if 循环(语句)来查找这些值。


如果您要以恒定的次数遍历列表来执行此操作,则需要第二个数据结构。

如果该集合中的值有下限和上限,并且值相对密集,那么计数器数组是一个很好的解决方案。

否则,最好使用Map<Integer, Integer>,其中键是集合的元素,值是计数器。

Analysis

如果在开始之前没有设置集合的下限/上限,那么您不知道要分配的计数器数组。因此,您必须对数组进行初步遍历以找到边界……现在您有一个两遍解决方案。

如果确实有下限和上限,但集合很稀疏,则初始化计数数组的成本 + 查找三个最大计数的成本将主导对集合元素进行计数的成本。如果差异足够大(即输入很大且非常稀疏),HashMap 将会更快并且占用更少的内存。

或者

如果允许更改数组,则可以将其按升序排序O(NlogN)然后在排序数组上一次查找三个最常见的元素。

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

数组中最常见的值 的相关文章

  • 使用 memcpy 复制二维数组?

    所以我想将二维数组的内容复制到另一个完全相同类型的数组 以下是数组的创建方式 GridUnit newGrid newGrid new GridUnit width for int i 0 i lt width i newGrid i ne
  • 删除队列对象数组

    我正在研究一个包含数组的对象queues数组长度在调用构造函数之前才确定 基本上看起来像下面这样 include
  • 无法解析导航抽屉中片段中的 getSystemService

    我正在尝试实现一个导航抽屉 其中有一个片段中的地图 这是我的代码 这里是fragment map xml
  • 如何在 Angular JS 中显示以字节数组形式接收的图像

    我有一个将返回图像的服务器端应用程序 这些是响应标头 Content Disposition attachment filename 8822a009 944e 43f4 999b d297198d302a 1 0 low res Cont
  • Android - Firebase - 保存新数据而不覆盖旧数据

    创建此问题是因为我之前的问题包含 2 个问题 而不是将其缩小到 1 Aim 用户将能够存储新数据而不会覆盖之前提交的数据 描述 目前 当用户输入新报告时 事件报告节点中的用户事件报告数据将被覆盖 用户发送的旧事件报告中的数据应与新数据一起保
  • java IO将一个文件复制到另一个文件

    我有两个 Java io File 对象 file1 和 file2 我想将 file1 的内容复制到 file2 有没有一种标准方法可以做到这一点 而无需我创建一个读取 file1 并写入 file2 的方法 不 没有内置方法可以做到这一
  • Netflix Archaius 动态配置

    我正在将 Hystrix 集成到现有项目中 并且希望从 xml 文件中读取配置值 而不是使用配置管理器提供配置属性 当 xml 文件中的值更新时 我希望 Hystrix 配置在运行时更新 这是我遵循的指南 https github com
  • Swift - 对数组中每个字符串中的字符进行排序

    所以这个问题是这个问题的后续问题 允许相同字符串的快速字符串排列 https stackoverflow com questions 48976065 swift string permutations allowing the same
  • 获取运行时提供的类名的 n 维数组的类

    给定一个完全限定的类名和多个维度 我想获取该类的类名 我相信我可以这样做 public Class elementType Class forName className return Array newInstance elementTy
  • 如何使用spring data mongodb在mongodb中创建视图

    如何使用spring data mongodb在mongodb中创建视图 谢谢 您可以在需要的地方注入 org springframework data mongodb core MongoTemplate 类型的 bean 并使用其方法之
  • 如何为我的数独游戏制作 GUI? (摇摆)

    到目前为止 我已经编写了生成随机 9x9 数独网格的代码 我是Java的初学者 所以我有一些关于如何做UI的问题 显示数字的最佳方式是什么 我尝试创建 81 个 JTextFields 这非常乏味 而且我确信有一种有效的方法可以做到这一点
  • 使用 Hibernate 作为 ORM 机制的 Web 应用程序中的 L1 和 L2 缓存有什么区别?

    我只想要一些有关使用 L1 缓存和 L2 缓存的标准用途的一般信息 我很好奇 因为我正在研究使用赤土陶器作为二级缓存的系统 并且我发现它也有一级缓存 L1 缓存是每个 Hibernate 会话都存在的缓存 并且该缓存不在线程之间共享 该缓存
  • 如何判断变量是否是数组

    我有一个接受 Any 的 Swift 函数 我希望它能够接受字符串数组 整数数组 混合数组或数组数组等 它也可以只接受字符串或整数 等等 不在数组中 所以我有这个 private func parse parameter Any if pa
  • java POI XSSF 公式评估器

    我在保存新的 Excel 文件时遇到问题 我希望当它被保存时 公式会自行计算 但目前它只是返回 Excel 文件中的一个字符串 公式是正确的 我不知道到底要得到FormulaEvaluator上班 这是我输入返回字符串的公式的地方 data
  • 循环遍历多维数组

    我有一个与此类似的 JSON 文件 Pages Name Home Page index php admin Name Admin Page admin index php Template admin MobileTemplate adm
  • 如何获取嵌套类型内部结构的所有类型?

    我有一个函数如下 public void park List
  • 更改 Logger 实例的全局设置

    我在用着java util logging Logger http download oracle com javase 1 4 2 docs api java util logging Logger html作为我的应用程序的日志引擎 每
  • Java 统一编码

    A Java char is 2 bytes http java sun com docs books tutorial java nutsandbolts datatypes html 最大大小为 65 536 但有95 221 http
  • 如何提高QNX6下Eclipse IDE的性能

    我们在 VMWare 环境中通过 QNX6 运行 Eclipse 速度非常慢 Eclipse 是这样启动的 usr qnx630 host qnx6 x86 usr qde eclipse eclipse data root workspa
  • 在同一项目上使用 Eclipse 和 NetBeans

    Eclipse 是一个非常棒的编辑器 我更喜欢使用它 但是缺少 Eclipse 的 GUI 设计工具 另一方面 NetBeans 非常适合 GUI 设计 在同一项目中使用 NetBeans 进行 GUI 设计和 Eclipse 进行其他所有

随机推荐

  • 如何比较签名和未签名(并避免问题)

    最近我听说 C 中的有符号 无符号比较可能很棘手 例如 有符号 无符号比较还有其他一些问题 我的问题是 如果我们必须将有符号类型与无符号类型进行比较 例如 包括 gt 存在哪些策略可以避免这种比较产生的问题 或者我们应该确保我们总是只比较i
  • Magento 价格格式 - 2 或 3 位小数

    我需要将某些商品的价格设置为小数点后 3 位 我通过将 精度 变量更改为 3 来实现此目的 但这意味着网站上的每个价格都显示为小数点后 3 位 即 空购物车显示为 0 000 英镑 我只想在需要时显示小数点后第三位 但我不确定在代码库中哪里
  • 创建/追加节点与innerHTML

    有人有充分的理由使用其中一种而不是另一种吗 据我所知 创建 附加节点只是防止您创建无效代码 而innerHTML允许您一次注入多个节点 考虑到我需要插入几个标签 使用innerHTML似乎是有意义的 有人有不同的看法吗 这始终是一个有争议的
  • SaveMany 在 cakePHP 中同时更新多条记录不起作用

    我面临着使用 saveMany 同时更新多个记录的问题 我有如下关联 候选人hasMany候选人雇主 候选人雇主属于候选人 Candidate php 中的模型关联 public hasMany array CandidatesEmploy
  • 按顺序生成数字 Order

    我想生成由支票中输入的位置搜索的值 例如 如果输入 20 则函数应生成从 0 开始的数字 并继续按升序排列 直到创建 20 位数字 然后输出生成的数字字符串中第 20 位的值 01234567891011121314 即 4 我在下面尝试了
  • 主题已在云发布/订阅上创建,但无法创建该主题的监视

    我想在云发布 订阅主题上创建监视 但无法创建它 为此 我正在使用其余请求 request Req post url https www googleapis com gmail v1 users me watch headers conte
  • MapView Pin 注释的问题 - 当地图缩放/平移/区域更改时 Pin 会失去颜色

    我有一个显示现金点位置的地图视图 注释将被删除 并且可以单击标注以转到包含有关该位置的更多详细信息的页面 提款机分为免费和付费两类 免费提款机的针脚为绿色 另一种为红色 当别针掉落时 它们的颜色是正确的 一切正常 直到我缩放到用户位置或地图
  • 如何删除子列表

    如何从列表中删除所有出现的子列表 例如 List 1 2 3 4 5 6 7 4 8 9 10 5 removeSubList 4 5 应该删除所有出现的 4 5 按此顺序 因此它返回 List 1 2 3 6 7 4 8 9 10 5 使
  • 无法跨选项卡查看本地存储事件

    我正在尝试创建一个简单的概念验证 涉及在发生更改时使用 localStorage 在我的应用程序中触发选项卡 根据我看过的其他文章 我知道这是可能的 我明白the spec声明该事件将在每个页面上触发except我现在使用的那个 这实际上就
  • 视图始终执行 HTTP GET 而不是提交时发布

    我一直无法弄清楚为什么会发生这种情况 在我所在的每个简单视图上 当我单击提交按钮时 请求总是被路由回控制器并触发视图的 HTTPGET 方法 我什至尝试使用 POST 对表单标签进行硬编码 但它仍然发生 这似乎是某种路由问题 但我不确定下一
  • 如何从数据框中选择不匹配的行?

    我试图识别数据框中不匹配的值 但不知道如何执行此操作 make data frame a lt data frame x c 1 2 3 4 b lt data frame y c 1 2 3 4 5 6 select only value
  • Javascript 硬币兑换/找零算法

    所以我一直在尝试用 Javascript jQuery 创建一个程序 将一定数量的钱分成最小数量的美元钞票 到目前为止 该计划仅适用于一项法案 我不太确定如何实施其余法案 需要在正确的方向上推动 var bills 5 10 20 50 1
  • 如何强制一个类恰好具有给定属性之一

    我有一个 Person 类和一组数据属性 First Name Surname Gender DoB Country of Birth 数据属性的 Domains 设置为 Person 我想在我的本体论中建立一条规则 规定每个人must恰好
  • jquery 淡入回调不等待

    我试图让一个 div 淡出 然后让第二个 div 淡入其位置 但是第二个 div 淡出的回调似乎不会等待第一个 div 完成淡出 事实上它们都同时淡出时间提供交叉淡入淡出效果而不是淡出然后再淡出 继承人的代码 document ready
  • python脚本输出末尾的百分号[关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 为什么 python 脚本的输出末尾有一个百分号 echo 测试测试 修剪测试一下 usr bin env python import sys if name main for lin
  • Django:重定向到上一页并保持滚动位置

    我见过this问题是您可以使用以下命令重定向到上一页 return HttpResponseRedirect request META get HTTP REFERER 但有没有办法也保持滚动位置呢 上面的内容重新加载页面 经过一番来回 这
  • MySql 查询从表中找出前 50% 的记录

    我正在尝试从 MySQL 表用户获取前 50 的记录 我知道我们可以使用 limit 或 top 来查找它们 但记录总数不固定 因此对 limit 或 top 中的实际数量进行硬编码并不能给出前 50 的记录 我怎样才能实现这个目标 如果您
  • 根据父宽度定位绝对顶部属性

    有以下 HTML div class child of body This is a text div 和以下 CSS child of body position absolute top 10 我可以设置top所选元素的值 我看到10
  • 使用值范围作为键的字典对象

    我需要一本专门的词典 我的用例是这样的 用户想要指定值的范围 该范围也可以是单个点 并将值分配给特定范围 然后我们希望使用单个值作为键来执行查找 如果该单个值出现在某个范围内 那么我们将返回与该范围关联的值 例如 represents th
  • 数组中最常见的值

    我将如何找到数组中三个最常见的元素 我正在处理长度为 10 000 的数组 其元素 0 100 之间的随机整数 我正在考虑使用两个数组 其中一个长度为 100 并且通过使用 if 语句来递增 但是 我想知道是否有一种方法可以仅使用一个 fo