737. Find Elements in Matrix

Given a matrix, find a element that appear in all the rows in the matrix.You can assume that there is only one such element.
样例

For example:
Given a matrix:
[
  [2,5,3],
  [3,2,1],
  [1,3,5]
]
return 3

哈希表查找

这个倒不是一定得用哈希表,只是用哈希好写一些,而且同一行相同的元素放在哈希表中就只有一个了。
准备两个set<int>分别是res1,res2,首先把第一行放入res1,第二行来的时候在第一行查找(利用find成员函数),能找到的再放入res2,找不到就不要了,然后把res1清空,第三行来的时候反过来在res2中查找,能找到的放入res1,然后把res2清空,以此类推,重复说上述步骤,最后留下的set里的数就会越来越少,直到最后只剩一个数(这个题假定只有一个这样的数),实际上如果多几个数的话这样的代码也是可以的。

    int FindElements(vector<vector<int>> &Matrix) {
        set<int> res1;
        set<int> res2;
        auto s1=Matrix.size();
        auto s2=Matrix[0].size();
        for(int i=0;i<s1;i++)
        {
            for(int j=0;j<s2;j++)
            { 
                if(i==0)       //第一行先插入进去
                res1.insert(Matrix[i][j]);
                else if(i%2!=0)
                {
                    if(res1.find(Matrix[i][j])!=res1.end())   //如果能在s1中找到,就存在s2里。
                    res2.insert(Matrix[i][j]);
                    
                   
                }
                else if(i%2==0)
                {
                    if(res2.find(Matrix[i][j])!=res2.end())   //如果能在s2中找到,就存在s1里。
                    res1.insert(Matrix[i][j]);
                    
                   
                }
            }
            if(i%2!=0)
            res1.clear();
            if(i%2==0)
            res2.clear();         //这两个清空一定不要写在循环里了。
    
        }
        if(res1.size()==1)
        return *res1.begin();
        if(res2.size()==1)
        return *res2.begin();
        // write your code here
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,288评论 0 16
  • 从最基础的数据结构 数组|链表|树 开始,基于这些基础数据结构通过各种设计组合成具备特定功能的数据结构,这些结构是...
    轩居晨风阅读 1,225评论 2 31
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,498评论 0 17
  • 我喜欢六月的风吹过 也喜欢七月的雨飘洒 尽管月夜里风多轻柔 雨多温情 却不及温润你的眼睛
    令风轩阅读 164评论 0 0
  • 你有没有看过一些很熟悉背影,熟悉的发型,熟悉的面型,熟悉的眼镜,熟悉的衣服,哪怕是熟悉的身高…你都会去走过去看一眼...
    动感超人mo阅读 255评论 0 0