📜  计算数字中的重复数字 - Javascript(1)

📅  最后修改于: 2023-12-03 14:57:31.011000             🧑  作者: Mango

计算数字中的重复数字 - JavaScript

在编程中,经常会遇到需要计算数字中的重复数字的情况。无论是为了统计频率或找出重复的数字,我们需要一个方法来处理这些任务。

以下是一个使用 JavaScript 来计算数字中重复数字的示例代码片段。在这个代码片段中,我们将介绍两种方法来解决这个问题:使用哈希表和使用集合。

使用哈希表
function findDuplicates(nums) {
  let hash = {};
  let duplicates = [];

  for (let i = 0; i < nums.length; i++) {
    if (hash[nums[i]]) {
      duplicates.push(nums[i]);
    } else {
      hash[nums[i]] = true;
    }
  }

  return duplicates;
}

代码说明:

  • 首先,我们创建一个空的哈希表(即一个对象 hash)和一个空的数组 duplicates,用于存储重复的数字。
  • 然后,我们遍历数组 nums 的每个元素。
  • 对于每个元素,我们检查它是否已经在哈希表中存在:
    • 如果存在,说明这个数字是重复的,我们将它添加到 duplicates 数组中。
    • 如果不存在,我们将它添加到哈希表中,并将其值设为 true,表示已经遇到过该数字。
  • 最后,我们返回 duplicates 数组,其中包含了所有重复的数字。
使用集合
function findDuplicates(nums) {
  let set = new Set();
  let duplicates = [];

  for (let i = 0; i < nums.length; i++) {
    if (set.has(nums[i])) {
      duplicates.push(nums[i]);
    } else {
      set.add(nums[i]);
    }
  }

  return duplicates;
}

代码说明:

  • 首先,我们创建一个空的集合 set 和一个空的数组 duplicates,用于存储重复的数字。
  • 然后,我们遍历数组 nums 的每个元素。
  • 对于每个元素,我们检查它是否已经在集合中存在:
    • 如果存在,说明这个数字是重复的,我们将它添加到 duplicates 数组中。
    • 如果不存在,我们将它添加到集合中。
  • 最后,我们返回 duplicates 数组,其中包含了所有重复的数字。

以上代码片段提供了两种使用哈希表和集合来计算数字中重复数字的方法。根据个人的喜好和具体任务的要求,选择合适的方法来解决问题。希望对你有所帮助!