首页 > 其他 > 详细

LeetCode每日刷题-137. 只出现一次的数字 II

时间:2021-04-30 22:33:49      阅读:27      评论:0      收藏:0      [点我收藏+]

来源:LeetCode

题目:

给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。

示例1:

输入:nums = [2,2,3,2]
输出:3

示例2:

输入:nums = [0,1,0,1,0,1,99]
输出:99

本来的想法是将重复的数字存在一个数组,再和原来的对比,怎么写都不对,改天再改逻辑了,代码是官方的答案

 1 var singleNumber = function(nums) {
 2 const map = new Map();
 3 for(const num of nums){
 4 //map.set(数值,出现次数) map.get(num)初始都是Undefine,取0,第一次出现+1,第二次出现取原来的1再+1,如第一次出现1:set(1,1),第二次出现1:set(1,1+1)
 5     map.set(num,( map.get(num) || 0 ) + 1);
 6 }
 7 let a = 0;
 8 //将原来的格式:map[[1,3][0,3][99,1]]拆解为map[1,3][0,3][99,1],即返回新的迭代对象
 9 for(const [num,ooc] of map.entries()){
10     if (ooc===1){
11         a = num;
12     }
13 }
14   return a;
15 };

 

LeetCode每日刷题-137. 只出现一次的数字 II

原文:https://www.cnblogs.com/yesimola/p/14723296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!