-
Notifications
You must be signed in to change notification settings - Fork 192
Home
XisuNyy edited this page Nov 4, 2021
·
1 revision
为什么 这leetcode 二维数组中的查找 这个题目老会报错 希望作者大大 给一点参考
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int row=matrix.size();
int col=matrix[0].size();
int i=0,j=col-1;//行和列
while(i<row&&j<col&&j>=0)
{
int value=matrix[i][j];
if(value>target) j--;
else if(value<target) i++;
else return true;
}
return false;
}
};我也尝试过 不同的写法
bool findNumberIn2DArray(int** matrix, int matrixSize, int* matrixColSize, int target){
bool res=false;
//对于行和列进行处理
int array_cols=matrixSize;
int array_rows=matrixSize;
// 输入的参数是 数组 ,数组大小 数组的列长度 和目标的数组
if(matrix!=NULL&&array_rows>0&&array_cols>0)
{
int row=0;
int col=array_rows-1;
//进行扫描 从第一行开始 先从第一行的最后一个开始比较
while(row<array_rows&&col>=0)
{
if(matrix[row][col]==target)
{
res=true;
break;
}
else if(matrix[row][col]>target)
{
col--;
}
else
{
row++;
}
}
}
return res;
}在后面的案例中 不清楚 我和这个正确答案的区别
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
int i =matrix.size()-1;
int 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;
}
};