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 and nums2 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
        }
    }
    
    

All Problems

All Solutions