Welcome to Subscribe On Youtube
Formatted question description: https://leetcode.ca/all/2540.html
2540. Minimum Common Value
Description
Given two integer arrays nums1
and nums2
, sorted in non-decreasing order, return the minimum integer common to both arrays. If there is no common integer amongst nums1
and nums2
, return -1
.
Note that an integer is said to be common to nums1
and nums2
if both arrays have at least one occurrence of that integer.
Example 1:
Input: nums1 = [1,2,3], nums2 = [2,4] Output: 2 Explanation: The smallest element common to both arrays is 2, so we return 2.
Example 2:
Input: nums1 = [1,2,3,6], nums2 = [2,3,4,5] Output: 2 Explanation: There are two common elements in the array 2 and 3 out of which 2 is the smallest, so 2 is returned.
Constraints:
1 <= nums1.length, nums2.length <= 105
1 <= nums1[i], nums2[j] <= 109
- Both
nums1
andnums2
are sorted in non-decreasing order.
Solutions
-
class Solution { public int getCommon(int[] nums1, int[] nums2) { int m = nums1.length, n = nums2.length; for (int i = 0, j = 0; i < m && j < n;) { if (nums1[i] == nums2[j]) { return nums1[i]; } if (nums1[i] < nums2[j]) { ++i; } else { ++j; } } return -1; } }
-
class Solution { public: int getCommon(vector<int>& nums1, vector<int>& nums2) { int m = nums1.size(), n = nums2.size(); for (int i = 0, j = 0; i < m && j < n;) { if (nums1[i] == nums2[j]) { return nums1[i]; } if (nums1[i] < nums2[j]) { ++i; } else { ++j; } } return -1; } };
-
class Solution: def getCommon(self, nums1: List[int], nums2: List[int]) -> int: i = j = 0 m, n = len(nums1), len(nums2) while i < m and j < n: if nums1[i] == nums2[j]: return nums1[i] if nums1[i] < nums2[j]: i += 1 else: j += 1 return -1
-
func getCommon(nums1 []int, nums2 []int) int { m, n := len(nums1), len(nums2) for i, j := 0, 0; i < m && j < n; { if nums1[i] == nums2[j] { return nums1[i] } if nums1[i] < nums2[j] { i++ } else { j++ } } return -1 }
-
function getCommon(nums1: number[], nums2: number[]): number { const m = nums1.length; const n = nums2.length; let i = 0; let j = 0; while (i < m && j < n) { if (nums1[i] === nums2[j]) { return nums1[i]; } if (nums1[i] < nums2[j]) { i++; } else { j++; } } return -1; }
-
impl Solution { pub fn get_common(nums1: Vec<i32>, nums2: Vec<i32>) -> i32 { let m = nums1.len(); let n = nums2.len(); let mut i = 0; let mut j = 0; while i < m && j < n { if nums1[i] == nums2[j] { return nums1[i]; } if nums1[i] < nums2[j] { i += 1; } else { j += 1; } } -1 } }