LeetCode 题解:2341. 数组能形成多少数对,哈希表,详细注释
原题链接
解题思路:
遍历数组,并使用
Map缓存数字出现的次数关系如果出现偶数次,
map.set(num, true)如果出现奇数次,
map.set(num, false)剩余数字的数量为
nums.length - 2 * pairCount
复制代码
本文字数:425 字
阅读完需:约 1 分钟
遍历数组,并使用Map缓存数字出现的次数关系
如果出现偶数次,map.set(num, true)
如果出现奇数次,map.set(num, false)
剩余数字的数量为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]};
还未添加个人签名 2018-08-29 加入
还未添加个人简介

促进软件开发及相关领域知识与创新的传播
京公网安备 11010502039052号 | 产品资质

评论