题目:剑指4 二维数组的查找
错误代码:
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i = 0, j=matrix[0].size() - 1;
while(j >= 0 && i < matrix.size())
{
if(matrix[i][j] > target) j--;
else if(matrix[i][j] < target) i++;
else return true;
}
return false;
}
};
编译错误:
reference binding to null pointer of type 'std::vector<int, std::allocator<int>>' (stl_vector.h)
因为没判断数组为空的情况。但是从左下角开始就没事。
解决办法:
在20行前面应该加:
if(matrix.size()==0 || matrix[0].size()==0) return fasle;
题目链接:
https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/