Java 中按频率排序元素10 Sept 2024 | 5 分钟阅读 给定一个整数数组。数组中的一些元素是重复的。我们的任务是返回一个数组或列表,其中包含提供的元素,并按它们出现的频率降序排列。换句话说,出现频率最高的元素应该排在最前面。如果任何两个元素的出现频率相同,则输入数组中先出现的元素应在输出数组中先出现。 示例 1 输入 inputArr[] = {12, 16, 15, 12, 12, 18, 15, 18, 16, 18, 18} 输出 resultArr[] = {18, 18, 18, 18, 12, 12, 12, 16, 16, 15, 15} 解释:元素 18 的出现频率最高,因为它的频率计数为 4。然后,元素 12 的出现频率最高,因为它的频率计数为 3。然后,元素 16 和 15 的频率出现存在平局。由于元素 16 先出现,因此元素 16 排在元素 15 之前。 示例 2 输入 inputArr[] = {19, 20, 17, 45, 34, 3, 2, 1, 89, 56, 80, 85, 90} 输出 resultArr[] = {19, 20, 17, 45, 34, 3, 2, 1, 89, 56, 80, 85, 90} 解释:每个元素的出现频率都相同,即 1。因此,元素在输入数组中的顺序与它们在输出数组中出现的顺序相同。 方法概念是根据元素出现频率的最高到最低进行排序。为了避免冲突,请根据元素在输入数组中的出现顺序来维护元素的出现索引。 算法步骤 1:概念是实现自定义比较方法来解决问题。设要比较的两个元素为 'n1' 和 'n2'。那么。
步骤 2:对于每个元素,将其及其频率和在输入数组中的首次出现索引放入字典中。 步骤 3:根据自定义比较器对元素值进行排序,最终返回具有排列元素的已排序列表。 实施观察上述算法的实现。 文件名:SortEleByFreq.java 输出 The input array is: 12 16 15 12 12 18 15 18 16 18 18 After sorting by frequency of occurrences, the array becomes: 18 18 18 18 12 12 12 16 16 15 15 The input array is: 19 20 17 45 34 3 2 1 89 56 80 85 90 After sorting by frequency of occurrences, the array becomes: 19 20 17 45 34 3 2 1 89 56 80 85 90 复杂度分析:由于我们应用了排序,因此程序的 time complexity 为 O(n * log(n))。我们还创建了一个 array list 来存储结果。因此,space complexity 为 O(n),其中 n 表示输入数组中的总元素数。 |
鸭子数是另一种特殊的正非零数,其中包含零。数字零不应出现在数字的开头。零可以出现在除开头以外的任何位置。让我们通过一些鸭子数的例子来理解……
阅读 3 分钟
搜索引擎在当今的数字世界中起着至关重要的作用,使用户能够快速有效地找到相关信息。虽然创建像 Google 这样的大型搜索引擎是一项艰巨的任务,但您可以在 Java 中构建一个基本的搜索引擎来搜索一系列...
阅读 6 分钟
SonarQube 是一个开源的静态测试分析软件。开发人员使用它来管理源代码的质量和一致性。一些代码质量检查包括:潜在的 bug 设计中的代码缺陷代码重复测试覆盖率不足过度复杂性静态测试这是一种在程序运行之前检查源代码的调试方法...
阅读 6 分钟
Java 中的序列化是一种机制,通过该机制可以将对象转换为字节流,以便写入文件或通过网络发送,存储在数据库中。序列化的逆过程是反序列化,通过该过程可以从...重建对象
5 分钟阅读
给定一个数组流。任务是使用 forEach() 方法展平一个数组流。示例 1:输入:数组 [][] = { {1, 2, 3}, {4, 5}, {6, 7, 8, 9} } 输出:[1, 2, 3, 4, 5, 6, 7, 8, 9] 说明:遍历每个子数组,...
阅读 4 分钟
detectedCharset() 方法是 java.nio.charset.CharsetDecoder 类的一个内置方法,它检索此解码器已检测到的字符集。该方法的默认实现始终抛出 UnsupportedOperationException。自动检测解码器应重写此方法,一旦输入字符集已...
阅读 3 分钟
HashMap 是 Java 中用于存储键值对的基本数据结构。它们通过键提供对值的快速高效访问,使其成为各种应用程序的流行选择。通常,您可能需要比较两个 HashMap 以识别差异或相似之处。在此...
5 分钟阅读
索引映射,也称为平凡哈希,是一种将数组元素映射到新数组中索引的技术。这可用于有效地执行查找重复项或计算数组中元素出现次数等操作。一种常见的实现……
阅读 10 分钟
ArrayList 和 HashMap 在 Java 中的区别 在 Java 中,ArrayList 和 HashMap 是 Java Collection Framework 中常用的两个类。即使它们都属于 Collection Framework,但它们存储和处理数据的方式却不同。在本节中,我们将...
阅读 2 分钟
? 从当前日期计算周数是各种 Java 应用程序中的常见要求。周数计算在调度、时间跟踪、工资管理以及许多其他场景中非常有用。Java 提供了多种方法来从当前日期计算周数,使用内置的...
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India