白菜刷LeetCode記-350. Intersection of Two Arrays II
阿新 • • 發佈:2018-09-21
lee style 數據 func img div 了解 討論 同時
今天題目如下:
比較簡單,代碼如下:
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = function(nums1, nums2) { let myMap = new Map(); let myArr = new Array(); nums1.forEach(function(item){ if(myMap.has(item)){ myMap.set(item, myMap.get(item)+ 1); }else{ myMap.set(item, 1); } }); nums2.forEach(function(item){ if(myMap.has(item) && myMap.get(item) > 0){ myArr.push(item); myMap.set(item, myMap.get(item) - 1); } }) return myArr; };
然後看了看討論區的答案,別人用Array就實現了,而我還要用到Map這個數據結構,看來自己最近用Map的次數比較多了,同時也說明了自己要對Array的方法多加了解。
代碼如下:
/** * @param {number[]} nums1 * @param {number[]} nums2 * @return {number[]} */ var intersect = function(nums1, nums2) { let arr = []; while(nums2.length > 0){ let item = nums2.pop(); if(nums1.indexOf(item) > -1){ let tmpidx = nums1.indexOf(item); arr.push(item); nums1.splice(tmpidx,1); } } return arr; };
白菜刷LeetCode記-350. Intersection of Two Arrays II