350. 两个数组的交集 II --力扣 --JAVA
2023-12-21 12:18:53
题目
给你两个整数数组?
nums1
?和?nums2
?,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。
解题思路
- 对两个数组进行排序整理;
- 从索引0开始对数组进行遍历,创建List来存储相同的数据;
- 元素相等则添加到List中并且索引都右移一位;
- 元素不相等则小的索引右移大的不变。
代码展示
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Arrays.sort(nums1);
Arrays.sort(nums2);
int index1 = 0;
int index2 = 0;
int n = nums1.length;
int m = nums2.length;
List<Integer> data = new ArrayList<>();
while (index1 < n && index2 < m){
if(nums1[index1] == nums2[index2]){
data.add(nums1[index1]);
index1++;
index2++;
} else if(nums1[index1] > nums2[index2]){
index2++;
} else {
index1++;
}
}
int[] ans = new int[data.size()];
for (int i = 0; i < data.size(); i++){
ans[i] = data.get(i);
}
return ans;
}
}
文章来源:https://blog.csdn.net/qq_45794129/article/details/135124684
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!