240. Search a 2D Matrix II【力扣】
程序员文章站
2022-07-12 09:16:38
...
题意理解
在一个从左上角到右下角排好序的二维数组上找数。
问题分析
顺序查找扩展
先定搜索起始点[0][n-1],如果target等于当前值返回ture;如果target小于当前值,左移一位;如果target大于当前值,下移一位。
其他
学习思路。
链接
bool searchMatrix(vector<vector<int>>& matrix, int target) {
if (matrix.size() == 0) return false;
if (matrix.size() && matrix[0].size() == 0) return false;
int m = matrix.size() - 1;
int n = matrix[0].size() - 1;
int i = 0, j = n;
while(i <= m && j >= 0)
{
// cout << i << '\t' << j << '\t' << matrix[i][j] << '\t' << target << endl;
if (matrix[i][j] == target)
{
return true;
}
else if (matrix[i][j] > target)
{
//cout << "zuo yi" << endl;
j --;
}
else
{
//cout << " xia yi" << endl;
i ++;
}
}
return false;
}