Search a 2D Matrix II

这道题的关键在于:要在查找的每一步缩小搜索范围,每一次都在数组的查找范围中剔除一行或者一列,直到找到要查找的数字或者查找范围为空。

因此,要选择左下角或者右上角作为搜索的起始点。

bool searchMatrix(vector<vector<int>>& matrix, int target) {
        bool result=false;
        if(matrix.size()==0)
            return result;
        
        int m=matrix.size();
        int n=matrix[0].size();
        int i=0;
        int j=n-1;
        while(i<m&&j>=0)
        {
            int x=matrix[i][j];
            if(target==x)
            {
                result=true;
                break;
            }
            else if(target<x)
                j--;
            else
                i++;
        }
        
        return result;
    }

 

posted on 2016-05-06 15:31  summerkiki  阅读(104)  评论(0编辑  收藏  举报