当前位置: 首页 > 面试题库 >

计算数组元素的出现次数/频率

公良骁
2023-03-14
问题内容

在Javascript中,我试图获取数字值的初始数组并计算其中的元素。理想情况下,结果将是两个新数组,第一个数组指定每个唯一元素,第二个数组包含每个元素出现的次数。但是,我愿意接受有关输出格式的建议。

例如,如果初始数组为:

5, 5, 5, 2, 2, 2, 2, 2, 9, 4

然后将创建两个新的数组。第一个将包含每个唯一元素的名称:

5, 2, 9, 4

第二个将包含元素在初始数组中出现的次数:

3, 5, 1, 1

因为数字5在初始数组中出现3次,所以数字2出现5次,而9和4都出现一次。

我已经寻找了很多解决方案,但似乎没有任何效果,而且我尝试过的所有事情都变得异常复杂。任何帮助,将不胜感激!

谢谢 :)


问题答案:

干得好:

function foo(arr) {
    var a = [], b = [], prev;

    arr.sort();
    for ( var i = 0; i < arr.length; i++ ) {
        if ( arr[i] !== prev ) {
            a.push(arr[i]);
            b.push(1);
        } else {
            b[b.length-1]++;
        }
        prev = arr[i];
    }

    return [a, b];
}

注意

这将使用以下命令更改原始输入数组的顺序 Array.sort



 类似资料:
  • 问题内容: 给定一个包含重复项的整数排序数组。查找数组中存在的每个唯一元素的频率。 频率定义为数组中任何元素出现的次数。 例如 : 问题答案: 我们首先讨论divide and conquer解决这个问题的基本策略。 每次调用我们的函数时,我们将数组分成两半,每次将我们的问题分成两半,导致最坏的时间复杂度为O(log(n))。 我们的数组实际上并没有被分成两半,但是我们保留了两个指针 start

  • 问题内容: 我已经看到了一些这样的示例,但是所有这些似乎都依赖于知道要计算发生次数的元素。我的数组是动态生成的,所以我无法知道要计算哪个元素的出现(我想计算所有元素的出现)。有人可以建议吗? 提前致谢 编辑: 也许我应该更清楚一点,数组将包含多个不同的字符串(例如 在不知道它们是什么的情况下,如何计算foo,bar和foobar的出现? 问题答案: Swift 3和Swift 2: 您可以使用类型

  • 所以现在我有一个 Arraylist包含以下值 我想找到独特的疫苗类型的数量以及它的频率。因此,例如,这个arraylist应该返回如下内容 理想的情况是它自己独立的数据结构(数组)。我尝试使用哈希列表,但不支持arraylist的格式化方式。 我得到错误“the hashlist Conly be Resolve to Type”。

  • 问题内容: 我有一个的类,如下所示: 如你所见,包含3个元素和一个元素。我想知道Collection框架中是否有任何API可以返回出现次数,bat或者是否有其他方法可以确定出现次数。 我发现Google的Collection 确实有一个API,该API返回一个元素出现的总数。但这仅与JDK 1.5兼容。我们的产品当前在JDK 1.6中,因此我无法使用它。 问题答案: 我很确定中的静态频率方法会派上

  • 本文向大家介绍手写代码:统计排序数组中出现次数最多的元素出现的次数?相关面试题,主要包含被问及手写代码:统计排序数组中出现次数最多的元素出现的次数?时的应答技巧和注意事项,需要的朋友参考一下 参考回答:      

  • 我已经将代码中的read整数修复为不再是I而是一个单独的变量“index”,并理解为什么我会收到Over Ofbound异常,但我有点厚,不明白如何在添加哨兵值0的同时修复它。