1. 程式人生 > >白菜刷LeetCode記-350. Intersection of Two Arrays II

白菜刷LeetCode記-350. Intersection of Two Arrays II

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