1143. Find Smallest Common Element in All Rows

  • Difficulty: Medium

  • Topics: Hash Table, Binary Search

  • Similar Questions:

Problem:

Given a matrix mat where every row is sorted in increasing order, return the smallest common element in all rows.

If there is no common element, return -1.

 

Example 1:

Input: mat = [[1,2,3,4,5],[2,4,5,8,10],[3,5,7,9,11],[1,3,5,7,9]]
Output: 5

 

Constraints:

  • 1 <= mat.length, mat[i].length <= 500
  • 1 <= mat[i][j] <= 10^4
  • mat[i] is sorted in increasing order.

Solutions:

class Solution {
public:
    int smallestCommonElement(vector<vector<int>>& mat) {
        int m = mat.size();
        if (m == 0) return -1;
        int n = mat[0].size();
        if (n == 0) return -1;

        for (auto& num : mat[0]) {
            bool found = true;
            for (int i = 1; i < m; ++i) {
                if (find(mat[i].begin(), mat[i].end(), num) == mat[i].end()) {
                    found = false;
                    break;
                }
            }
            if (found) return num;
        }

        return -1;

    }
};

results matching ""

    No results matching ""