2248. Intersection of Multiple Arrays

Easy
​
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.
​

解題

Runtime: 8 ms, faster than 90.12%
Memory Usage: 3.8 MB, less than 95.06%
func intersection(nums [][]int) []int {
count := make([]int, 1000)
for _, arr := range nums {
for _, val := range arr {
count[val-1]++
}
}
ans := make([]int, 0)
for i, val := range count {
if val==len(nums) {
ans = append(ans, i+1)
}
}
return ans
}