目录
解题思路
通过两层循环来分别处理 nums1
和 nums2
。对于 nums1
中的每个元素,遍历 nums2
来检查是否存在相同元素,若存在则 count1
加 1 并结束内层循环。对于 nums2
中的每个元素,遍历 nums1
进行相同的操作,若存在相同元素则 count2
加 1 并结束内层循环。
解题方法
- 首先定义两个变量
count1
和count2
并初始化为 0 ,用于记录满足条件的数量。 - 然后通过两个嵌套的循环来进行比较和计数。
- 外层循环遍历
nums1
。 - 内层循环遍历
nums2
,找到相同元素则count1
加 1 并立即结束内层循环。 - 外层循环遍历
nums2
。 - 内层循环遍历
nums1
,找到相同元素则count2
加 1 并立即结束内层循环。
- 外层循环遍历
时间复杂度
O(n * m)
其中 n
是 nums1
的长度,m
是 nums2
的长度。因为对于 nums1
的每个元素都要遍历 nums2
,对于 nums2
的每个元素都要遍历 nums1
空间复杂度
O(1)
Code
class Solution {
public int[] findIntersectionValues(int[] nums1, int[] nums2) {
int count1 = 0;
int count2 = 0;
for (int i = 0; i < nums1.length; i++) {
for (int num : nums2) {
if (nums1[i] == num) {
count1++;
break;
}
}
}
for (int i = 0; i < nums2.length; i++) {
for (int num : nums1) {
if (nums2[i] == num) {
count2++;
break;
}
}
}
return new int[]{count1, count2};
}
}