lintcode ----搜索二维矩阵

来源:互联网 发布:淘宝店铺装修背景图 编辑:程序博客网 时间:2024/05/16 16:20
法一: 右上角开始判断,小于target下移,大于target左移(37ms)
int searchMatrix(vector<vector<int> > &matrix, int target)     {        // write your code here        if(matrix.empty())            return 0;        int rows= matrix.size();        int col = matrix[0].size();        int i=0,j=col-1,count=0;        while(i<rows&&j>=0)        {            if(target==matrix[i][j])            {                count++;                if(i+1<rows)                    i++;                else if(j-1>=0)                    j--;                else                    return count;            }            else if(target>matrix[i][j])                i++;            else                 j--;        }        return count;    }

法二:借用map,记录数字出现次数,返回target的次数(50ms)

int searchMatrix(vector<vector<int> > &matrix, int target)     {        // write your code here        unordered_map<int,int> res;        for(int i=0;i<matrix.size();i++)        {            for(int j=0;j<matrix[i].size();j++)            {                res[matrix[i][j]]++;            }        }        return res[target];    }


0 0
原创粉丝点击