标签:nums 交集 ++ 349 LeetCode int new nums1 nums2
给定两个数组 nums1
和 nums2
,返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。
import java.util.*;
import java.util.stream.Collectors;
public class LC349 {
//运用流的一种解法
public int[] intersection1(int[] nums1, int[] nums2) {
Set<Integer> set1 = new HashSet<>();
Set<Integer> resultSet = new HashSet<>();
set1.addAll(Arrays.stream(nums1).boxed().collect(Collectors.toList()));
for (int i = 0; i < nums2.length; i++) {
if (set1.contains(nums2[i])) {
resultSet.add(nums2[i]);
}
}
return resultSet.stream().mapToInt(Integer::intValue).toArray();
}
//运用数组的一种解法
public int[] intersection(int[] nums1, int[] nums2) {
int[] nums = new int[1003];
for (int i = 0; i < nums1.length; i++) {
nums[nums1[i]]++;
}
for (int i = 0; i < nums2.length; i++) {
if (nums[nums2[i]] > 0) {
nums[nums2[i]] = -1;
}
}
Set<Integer> result = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
if (nums[i] == -1) {
result.add(i);
}
}
return result.stream().mapToInt(Integer::intValue).toArray();
}
public static void main(String[] args) {
int[] nums1 = new int[]{4, 9, 5};
int[] nums2 = new int[]{9, 4, 9, 8, 4};
LC349 lc349 = new LC349();
lc349.intersection(nums1, nums2);
}
}
标签:nums,交集,++,349,LeetCode,int,new,nums1,nums2 来源: https://www.cnblogs.com/wbstudy/p/16520995.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。