class Solution {
public:
int getCommon(vector<int>& nums1, vector<int>& nums2) {
}
};
2540. 最小公共值
给你两个整数数组 nums1
和 nums2
,它们已经按非降序排序,请你返回两个数组的 最小公共整数 。如果两个数组 nums1
和 nums2
没有公共整数,请你返回 -1
。
如果一个整数在两个数组中都 至少出现一次 ,那么这个整数是数组 nums1
和 nums2
公共 的。
示例 1:
输入:nums1 = [1,2,3], nums2 = [2,4] 输出:2 解释:两个数组的最小公共元素是 2 ,所以我们返回 2 。
示例 2:
输入:nums1 = [1,2,3,6], nums2 = [2,3,4,5] 输出:2 解释:两个数组中的公共元素是 2 和 3 ,2 是较小值,所以返回 2 。
提示:
1 <= nums1.length, nums2.length <= 105
1 <= nums1[i], nums2[j] <= 109
nums1
和 nums2
都是 非降序 的。原站题解
golang 解法, 执行用时: 60 ms, 内存消耗: 9.1 MB, 提交时间: 2023-01-23 09:04:26
func getCommon(nums1, nums2 []int) int { j, m := 0, len(nums2) for _, x := range nums1 { for j < m && nums2[j] < x { // 找下一个 nums2[j] >= x j++ } if j < m && nums2[j] == x { return x } } return -1 }
python3 解法, 执行用时: 56 ms, 内存消耗: 29.4 MB, 提交时间: 2023-01-23 09:03:24
class Solution: def getCommon(self, nums1: List[int], nums2: List[int]) -> int: j, m = 0, len(nums2) for x in nums1: while j < m and nums2[j] < x: # 找下一个 nums2[j] >= x j += 1 if j < m and nums2[j] == x: return x return -1
python3 解法, 执行用时: 52 ms, 内存消耗: 38.3 MB, 提交时间: 2023-01-23 09:03:12
class Solution: def getCommon(self, nums1: List[int], nums2: List[int]) -> int: return min(set(nums1) & set(nums2), default=-1)