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

今天题目如下:

比较简单,代码如下:

/**
 * @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;
};

原文地址:https://www.cnblogs.com/sssysukww/p/9684961.html

时间: 2024-10-08 21:05:28

白菜刷LeetCode记-350. Intersection of Two Arrays II的相关文章

【leetcode】350. Intersection of Two Arrays II

problem 350. Intersection of Two Arrays II 参考 1. Leetcode_350. Intersection of Two Arrays II; 完 原文地址:https://www.cnblogs.com/happyamyhope/p/10430296.html

[LeetCode] NO. 350 Intersection of Two Arrays II

[题目]Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. [题目解析] 这是对于求两个数组交集的延伸,之前求数组交集重复元素不包含在交集内,用set来求.那么这个问题,就可以用hashmap来解决.如下. public int[] intersect(int[] nums1, int

【LeetCode】350. Intersection of Two Arrays II 解题小结

题目: Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. 相比较I,这个题目允许答案出现重复的.想法就是做一个map统计nums1元素出现次数,然后nums2每次遍历都看看元素出现次数. class Solution { public: vector<int> intersect(

[LeetCode] 349 Intersection of Two Arrays &amp; 350 Intersection of Two Arrays II

这两道题都是求两个数组之间的重复元素,因此把它们放在一起. 原题地址: 349 Intersection of Two Arrays :https://leetcode.com/problems/intersection-of-two-arrays/description/ 350 Intersection of Two Arrays II:https://leetcode.com/problems/intersection-of-two-arrays-ii/description/ 题目&解法

leetcode349 350 Intersection of Two Arrays &amp; II

1 """ 2 Intersection of Two Arrays 3 Given two arrays, write a function to compute their intersection. 4 Example 1: 5 Input: nums1 = [1,2,2,1], nums2 = [2,2] 6 Output: [2] 7 Example 2: 8 Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] 9 Output:

白菜刷LeetCode记-811.Subdomain Visit Count

好久没有写LeetCode,所以说坚持真的是一件很难的事情啊.今日重新开始吧,先来一道简单的题目,如下: 这道题首先想到的还是使用Map,代码如下: /** * @param {string[]} cpdomains * @return {string[]} */ var subdomainVisits = function(cpdomains) { let tmp = new Map(); let res = new Array(); for(let i = 0 ; i < cpdomains

白菜刷LeetCode记-46. Permutations

今天这一题也是中等难度,题目如下: 这一题是要实现数组的全排列.这一题是要使用遍历以及递归的思想去实现,代码如下: 1 /** 2 * @param {number[]} nums 3 * @return {number[][]} 4 */ 5 var permute = function(nums) { 6 var res = new Array(); 7 8 helper(nums, 0, nums.length - 1 , res); 9 10 return res; 11 }; 12 1

白菜刷LeetCode记-122. Best Time to Buy and Sell Stock II

今天题目如下: 要求出最大的利益.这题个人不太想得通,看了答案也不太知道为什么这样能获得最大值.代码如下: 1 /** 2 * @param {number[]} prices 3 * @return {number} 4 */ 5 var maxProfit = function(prices) { 6 let maxp = 0; 7 for(let i = 0 ; i < prices.length ; i++){ 8 if(prices[i-1] < prices[i]){ 9 maxp

白菜刷LeetCode记-384. Shuffle an Array

今天早上是一道中等难度的题目,考的是洗牌算法. 个人对洗牌算法还是比较不熟悉的,因此是看答案的.参考链接为:https://www.jianshu.com/p/44100741cef5 基本思路为: 1) 将第一个元素与 n 个元素中的任意一个交换: 2) 将第二个与 n - 1 个元素进行交换: 3) 重复上述步骤,直到剩下1个元素. 代码如下: 1 var original; 2 var copy; 3 var num; 4 /** 5 * @param {number[]} nums 6