less than 1 minute read

<-E 2133> Check if Every Row and Column Contains All Numbers

// Method 1
class Solution {
public:
    bool checkValid(vector<vector<int>>& matrix) {
        if(matrix.size() != matrix[0].size())
            return false;

        set<int> check_each;
        for(int i = 0; i != matrix.size(); i++) {
           for(int j = 0; j != matrix[0].size(); j++) {
                check_each.insert(matrix[i][j]);
           }
            if(matrix.size() != check_each.size())
                    return false;
            else
                check_each.clear();
        }

        check_each.clear();
        for(int i = 0; i != matrix.size(); i++) {
           for(int j = 0; j != matrix[0].size(); j++) {
                check_each.insert(matrix[j][i]);
           }
            if(matrix.size() != check_each.size())
                    return false;
            else
                check_each.clear();
        }
        return true;
    }
};

// Method 2
class Solution {
public:
    bool checkValid(vector<vector<int>>& m) {
        int n = m.size();
        for(int i = 0; i < n; i++) {
            vector<bool> r(n);
            for(int j = 0; j < n; j++) {
                if(r[m[i][j] - 1] == true)  return false;
                r[m[i][j] - 1] = true;
            }
        }

        for(int i = 0; i < n; i++) {
            vector<bool> c(n);
            for(int j = 0; j < n; j++) {
                if(c[m[j][i] - 1] == true)  return false;
                c[m[j][i] - 1] = true;
            }
        }

        return true;
    }
};