LeetCode 2248. Intersection of Multiple Arrays Solution in Java, C++, Python & More | Explanation + Code

CoderIndeed
0
2248. Intersection of Multiple Arrays

Description

Given a 2D integer array nums where nums[i] is a non-empty array of distinct positive integers, return the list of integers that are present in each array of nums sorted in ascending order.

 

Example 1:

Input: nums = [[3,1,2,4,5],[1,2,3,4],[3,4,5,6]]
Output: [3,4]
Explanation: 
The only integers present in each of nums[0] = [3,1,2,4,5], nums[1] = [1,2,3,4], and nums[2] = [3,4,5,6] are 3 and 4, so we return [3,4].

Example 2:

Input: nums = [[1,2,3],[4,5,6]]
Output: []
Explanation: 
There does not exist any integer present both in nums[0] and nums[1], so we return an empty list [].

 

Constraints:

  • 1 <= nums.length <= 1000
  • 1 <= sum(nums[i].length) <= 1000
  • 1 <= nums[i][j] <= 1000
  • All the values of nums[i] are unique.

Solutions

Solution 1: Counting

Traverse the array nums. For each sub-array arr, count the occurrence of each number in arr. Then traverse the count array, count the numbers that appear as many times as the length of the array nums, which are the answers.

The time complexity is O(N), and the space complexity is O(1000). Where N is the total number of numbers in the array nums.

PythonJavaC++GoTypeScriptPHP
class Solution: def intersection(self, nums: List[List[int]]) -> List[int]: cnt = [0] * 1001 for arr in nums: for x in arr: cnt[x] += 1 return [x for x, v in enumerate(cnt) if v == len(nums)](code-box)

Solution 2

PythonJavaC++GoTypeScript
class Solution: def intersection(self, nums: List[List[int]]) -> List[int]: cnt = Counter() ans = [] for arr in nums: for x in arr: cnt[x] += 1 if cnt[x] == len(nums): ans.append(x) ans.sort() return ans(code-box)

Post a Comment

0Comments

Post a Comment (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Accept !