-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathintersectionofTwoArraysII.js
More file actions
36 lines (35 loc) · 1.36 KB
/
intersectionofTwoArraysII.js
File metadata and controls
36 lines (35 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
////////////////////////////////////////////////Intersection of Two Arrays II///////////////////////////////////////////
// Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must appear
// as many times as it shows in both arrays and you may return the result in any order.
// Example 1:
// Input: nums1 = [1,2,2,1], nums2 = [2,2]
// Output: [2,2]
// Example 2:
// Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4]
// Output: [4,9]
// Explanation: [9,4] is also accepted.
// Constraints:
// 1 <= nums1.length, nums2.length <= 1000
// 0 <= nums1[i], nums2[i] <= 1000
// Follow up:
// What if the given array is already sorted? How would you optimize your algorithm?
// What if nums1's size is small compared to nums2's size? Which algorithm is better?
// What if elements of nums2 are stored on disk, and the memory is limited such that you cannot load all elements into the memory at once?
/**
* @param {number[]} nums1
* @param {number[]} nums2
* @return {number[]}
*/
const intersect = function(nums1, nums2) {
let res = nums1;
res = res.filter(n => {
let l = nums2.length;
if (nums2.includes(n)) {
nums2.splice(nums2.indexOf(n), 1);
}
return l > nums2.length;
})
return res;
};
// console.log(intersect([1,2,2,1],[2,2]));
// console.log(intersect([4,9,5],[9,4,9,8,4]));