二维数组的查找
核心思想就是每次比较右上角数和目标数的大小关系,根据大小比较情况可以忽略掉一行或一列
class Solution {
public:
bool searchArray(vector<vector<int>> array, int target) {
if(array.empty() || array[0].empty()) return false;//判断边界情况
//否则的话就从右上角开始找
int n=array[1].size();
int i=0,j=array[0].size()-1;
while(i < n && j>=0){//遍历每行的最后一个值
if(array[i][j]==target) return true;
if(array[i][j] >target) j--;//如果最后一个值大于目标值,忽略对应列,所以是j--
else i++;//直接去掉一行
}
return false;
}
};