刷题-数组中重复的数字

Posted on 2022-02-04 23:45  AcTourist  阅读(42)  评论(0)    收藏  举报

一、题目要求

 

二、重点难点分析

  1.我为什么使用map的函数来解决:因为map可以存放重复的数字,而且可以利用has来判断是否有存在的数字

三、代码分析

 1 /**
 2  * @param {number[]} nums
 3  * @return {number}
 4  */
 5 var findRepeatNumber = function(nums) {
 6     let map = new Map();
 7     let len = nums.length;
 8 
 9     for( let i =0; i<len; i++){
10         if( map.has(nums[i])){
11             return nums[i];
12         }else{
13             map.set(nums[i],1);
14         }
15     }
16     return [];
17 };

四、举一反三

1.题目要求

 

2.重点难点分析

  (1)为什么这题类似:因为这道题已知sum(总和),我们可以用sum去减一个数b得出a,在寻找数组里面是否有b,这里我们就可以利用到map的has功能帮我们查找,如果有就【a,b】一起输出,还要记得先把b存进map里面。

3.代码展示

 1 /**
 2  * @param {number[]} nums
 3  * @param {number} target
 4  * @return {number[]}
 5  */
 6 var twoSum = function(nums, target) {
 7     let len = nums.length;
 8     let map = new Map();
 9 
10     for( let i =0 ; i<len; i++){
11         if( map.has(target - nums[i])){
12             return [map.get(target-nums[i]),i];
13         }else{
14             map.set(nums[i],i);
15         }
16     }
17     return [];
18 };