[
算法1
思路:令i,j为矩阵最右上角元素,从右上角向右左下角走,详细看下面
C++ 代码
class Solution {
public:
bool searchArray(vector<vector<int>> array, int target) {
//如果arry为空,或者列为空,直接返回
if(array.empty()||array[0].empty()) return false;
int i=0,j=array.size()-1;//行号从第0行开始,列号从最后一列开始,也就是右上角元素
while(i<array.size() &&j>=0)//从右上角往右下角走
{
if(array[i][j]==target)return true;//如果和目标值相同,直接返回true
if(array[i][j]>target)j--;//如果目标值小于最右上角的数,不用判断最后一列
else i++;//如果比目标值大,不用判断这一行
}
return false;//没找到直接返回false;
}
};