题目描述:
(两个数组的交集II)
给定两个数组,编写一个函数来计算它们的交集。
题目示例:
范例1:
输入: nums1 = [1,2,2,1],nums2 = [2,2]
输出:[2,2]
范例2:
输入: nums1 = [4,9,5],nums2 = [9,4,9,8,4]
输出:[4,9]
注意:
- 结果中的每个元素应出现在两个数组中的次数相同。
- 结果可以是任何顺序。
跟进:
- 如果给定数组已经排序怎么办?您将如何优化算法?
- 如果nums1的大小比nums2的大小小怎么办?哪种算法更好?
- 如果将nums2的元素存储在磁盘上并且内存受到限制,以致您无法一次将所有元素加载到内存中怎么办?
读题可知:
求交集
思考可知:
从数组A和数组B中找出相同的值 存放到数组C
代码:
class Solution {
public int[] intersect(int[] nums1, int[] nums2) {
Arrays.sort(nums1);
Arrays.sort(nums2);
int r=0,l=0;
List
while(r
//l=r+1;
while(l
if(nums1[r]==nums2[l])
{
a.add(nums1[r]);
l++;
break;
}
else if(nums1[r]
break;
}
else
l++;
}
r++;
}
int ar[]=new int[a.size()];
for(int i=0;i
ar[i]=a.get(i);
}
return ar;
}
}