publicint[] getIntersection(int[] nums1, int[] nums2) {
List<Integer> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
List<Integer> result = new ArrayList<>();
if (nums1.length > nums2.length) {
for (int i = 0; i < nums1.length; i++) {
list1.add(nums1[i]);
}
for (int i = 0; i < nums2.length; i++) {
list2.add(nums2[i]);
}
} else {
for (int i = 0; i < nums1.length; i++) {
list2.add(nums1[i]);
}
for (int i = 0; i < nums2.length; i++) {
list1.add(nums2[i]);
}
}
for (int i = 0; i < list1.size(); i++) {
int n = list1.get(i);
if (list2.contains(n)) {
list2.remove(list2.indexOf(n));
result.add(n);
}
}
int[] nums = newint[result.size()];
for (int i = 0; i < result.size(); i++) {
nums[i] = result.get(i);
}
return nums;
}
完全通过的方法
publicint[] getIntersection(int[] nums1, int[] nums2) {
if (nums1.length == 0 || nums2.length == 0) {
returnnewint[]{};
}
Arrays.sort(nums1);
Arrays.sort(nums2);
List<Integer> list = new ArrayList<>();
int index1 = 0;
int index2 = 0;
while (index1 < nums1.length && index2 < nums2.length) {
if (nums1[index1] == nums2[index2]) {
list.add(nums1[index1]);
index1++;
index2++;
} else {
if (nums1[index1] < nums2[index2]) {
index1++;
} else {
index2++;
}
}
}
int[] nums = newint[list.size()];
for (int j = 0; j < list.size(); j++) {
nums[j] = list.get(j);
}
return nums;
}