「这是我参与11月更文挑战的第3天,活动详情查看:2021最后一次更文挑战」
LeetCode 剑指Offer || 004.只出现一次的数字
题目要求
给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。
示例
输入:nums = [2,2,3,2]
输出:3
思路1
使用HashMap
1.new Map 然后便利数组,把Map的key设置为当前便利的值,把value设置为当前遍历的值出现的次数
let obj = new Map();
for (let temp of nums) {
obj.set(temp, (obj.get(temp) || 0), + 1);
}
2.把Map进行一下entries,转换成一个拥有key值和value值的数组,然后遍历这个数组,如果value==1就说明这个key就是我们要找的值
for (let [temp, times] of obj.entries()) {
if (times == 1) {
return temp;
}
}
完整代码
var singleNumber = function(nums) {
let obj = new Map();
for (let temp of nums) {
obj.set(temp, (obj.get(temp) || 0) + 1);
}
for (let [temp, times] of obj.entries()) {
if (times == 1) {
return temp;
}
}
};