2956.力扣每日一题7/16 Java
解题思路
通过两层循环来分别处理 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)
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};
}
}
- 点赞
- 收藏
- 关注作者
评论(0)