写点什么

LeetCode 题解:2341. 数组能形成多少数对,哈希表,详细注释

作者:Lee Chen
  • 2024-09-05
    福建
  • 本文字数:425 字

    阅读完需:约 1 分钟

原题链接

LeetCode题解:2341. 数组能形成多少数对

解题思路:

  1. 遍历数组,并使用Map缓存数字出现的次数关系

  2. 如果出现偶数次,map.set(num, true)

  3. 如果出现奇数次,map.set(num, false)

  4. 剩余数字的数量为nums.length - 2 * pairCount


/** * @param {number[]} nums * @return {number[]} */var numberOfPairs = function(nums) {  let map = new Map() // 使用Map缓存数字是否成对  let pairCount = 0 // 统计数对数量    for (const num of nums) {    // 如果已记录了数字:    // 1. 已记录数字成对:存储false    // 2. 已记录数字不成对:存储true    // 如果未记录数字:存储false,表示数字出现一次    map.set(num, map.has(num) ? !map.get(num) : false)
// 如果map.get(num)为true,表示数字成对,记录1个数量 if (map.get(num)) { pairCount++ } }
// 返回数对数量 // 剩余数字数量,可以根据数对数量计算得出 return [pairCount, nums.length - 2 * pairCount]};
复制代码


用户头像

Lee Chen

关注

还未添加个人签名 2018-08-29 加入

还未添加个人简介

评论

发布
暂无评论
LeetCode题解:2341. 数组能形成多少数对,哈希表,详细注释_Lee Chen_InfoQ写作社区