本文主要是介绍LeetCode题解:2341. 数组能形成多少数对,哈希表,详细注释,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原题链接
LeetCode题解:2341. 数组能形成多少数对
解题思路:
- 遍历数组,并使用
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]
};
这篇关于LeetCode题解:2341. 数组能形成多少数对,哈希表,详细注释的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!