题目:

给定一个矩阵,查找矩阵中所有行中都出现的元素。你可以假设只有一个这样的元素。

样例:

给定一个矩阵:
[ [2,5,3],
[3,2,1],
[1,3,5]
]
返回:3

思路:

用一个map来存储矩阵中每个元素出现的次数,当出现的次数等于行数时

参考答案:

class Solution {
public:
    /**
     * @param Matrix: the input
     * @return: the element which appears every row
     */
    int FindElements(vector<vector<int>> &Matrix) {
        // write your code here
        if(Matrix.empty())  return 0;
        int m = Matrix.size();
        int n = Matrix[0].size();
        map<int,int> res;
        
        for(int i=0; i<n; i++){
            res[Matrix[0][i]] = 1;
        }
        
        for(int i=1; i<m; i++){
            for(int j=0; j<n; j++){
                if(Matrix[i][j]) res[Matrix[i][j]]++;
                if(res[Matrix[i][j]] == m)  return Matrix[i][j];
            }
        }
        
    }
};

wydong
40 声望5 粉丝

wyd