Two Out of Three
给三个数组, 求哪些数字出现在这三个数组中至少出现两次.
class Solution {
public List<Integer> twoOutOfThree(int[] nums1, int[] nums2, int[] nums3) {
Map<Integer, Integer> map = new HashMap<>();
Set<Integer> set1 = new HashSet<>();
Set<Integer> set2 = new HashSet<>();
Set<Integer> set3 = new HashSet<>();
for(int n : nums1)
set1.add(n);
for(int n : nums2)
set2.add(n);
for(int n : nums3)
set3.add(n);
for(int n : set1)
map.put(n, map.getOrDefault(n, 0) + 1);
for(int n : set2)
map.put(n, map.getOrDefault(n, 0) + 1);
for(int n : set3)
map.put(n, map.getOrDefault(n, 0) + 1);
List<Integer> res = new LinkedList<>();
for(Map.Entry<Integer, Integer> e : map.entrySet())
{
if(e.getValue() >= 2)
res.add(e.getKey());
}
return res;
}
}