列表

详情


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 。

 

提示:

原站题解

去查看

上次编辑到这里,代码来自缓存 点击恢复默认模板
class Solution { public: int getCommon(vector<int>& nums1, vector<int>& 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)

上一题