给你三个整数数组 nums1、nums2 和 nums3 ,请你构造并返回一个 元素各不相同的 数组,且由 至少 在 两个 数组中出现的所有值组成。数组中的元素可以按 任意 顺序排列。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/two-out-of-three
题解
分析
- 暴力破解,两两比较,相同的放入List中
上代码(Java)
class Solution {
public List<Integer> twoOutOfThree(int[] nums1, int[] nums2, int[] nums3) {
List<Integer> list1 = Arrays.stream(nums1).boxed().collect(Collectors.toList());
List<Integer> list2 = Arrays.stream(nums2).boxed().collect(Collectors.toList());
List<Integer> list3 = Arrays.stream(nums3).boxed().collect(Collectors.toList());
List<Integer> result = new ArrayList<>();
for (Integer num : list1) {
boolean r1 = list2.contains(num);
boolean r2 = list3.contains(num);
if (r1 || r2) {
result.add(num);
}
}
for (Integer num : list2) {
boolean r1 = list1.contains(num);
boolean r2 = list3.contains(num);
if (r1 || r2) {
result.add(num);
}
}
for (Integer num : list3) {
boolean r1 = list1.contains(num);
boolean r2 = list2.contains(num);
if (r1 || r2) {
result.add(num);
}
}
return result.stream().distinct().collect(Collectors.toList());
}
}
测试用例通过(288/288)

评论区