class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i = 0, j = 0, flag = 0;
while (i < matrix.size() && j < matrix[0].size() && j>=0 && i>=0) {
if (matrix[i][j] == target) return true;
else if (matrix[i][j] < target) {
j == matrix[0].size() - 1 ? i++ : j++;
if (flag == 1 && matrix[i][j] < target)i++, flag = 0;
}
else j--,flag = 1;
}
return false;
}
};
二叉排序树的思路
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i = matrix.size() - 1, j = 0;
while(i >= 0 && j < matrix[0].size())
{
if(matrix[i][j] > target) i--;
else if(matrix[i][j] < target) j++;
else return true;
}
return false;
}
};
//作者:Krahets
//链接:https://leetcode.cn/problems/shu-zu-zhong-zhong-fu-de-shu-zi-lcof/solutions/96623/mian-shi-ti-03-shu-zu-zhong-zhong-fu-de-shu-zi-yua/