题目描述
给你两个整数数组 nums1 和 nums2 ,它们已经按非降序排序,请你返回两个数组的 最小公共整数 。如果两个数组 nums1 和 nums2 没有公共整数,请你返回 -1 。
如果一个整数在两个数组中都 至少出现一次 ,那么这个整数是数组 nums1 和 nums2 公共 的。
题目理解
找出最小的公共数就是找相同,本来就是非降序排列已经排好所以我们只要找到相同的最小值就行
个人思路
其实这个题我想过集合实现但是很麻烦。用双指针就会简单
public int getCommon(int[] nums1, int[] nums2) {
int n=nums1.length,m=nums2.length;
int i=0,j=0;
while (i<n && j<m) {
if (nums1[i] < nums2[j]) {
i++;
} else if (nums1[i] > nums2[j]) {
j++;
} else {
return nums1[i];
}
}
return -1;
}