遍历: c++
class Solution {
public:
bool findNumberIn2DArray(vector>& matrix, int target) {
if( matrix.size()==0 || matrix.size()==0 ) {
return false;
}
int rows = matrix.size(); // 不能一开始就赋值,rows,colunms,要先判断非空矩阵,否则赋值出错
int columns =matrix[0].size();
for(int i=0; i
python
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
if len(matrix)==0 or len(matrix[0])==0:
return False
rows = len(matrix)
columns = len(matrix[0])
for i in range(0, rows):
for j in range(0, columns):
if matrix[i][j] == target:
return True
return False
线性查找:
c++
class Solution {
public:
bool findNumberIn2DArray(vector>& matrix, int target) {
if(matrix.size()==0||matrix[0].size()==0){
return false;
}
int rows = matrix.size(); // 不能一开始就赋值,rows,colunms,要先判断非空矩阵,否则赋值出错
int columns =matrix[0].size();
// 从右上角开始遍历
int i = 0;
int j = columns-1;
while( i=0){
if(matrix[i][j] == target){
return true;
}else if( matrix[i][j] > target ){
j--;
}else{ // matrix[i][j] < target
i++;
}
}
return false;
}
};
python
class Solution:
def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:
if len(matrix)==0 or len(matrix[0])==0:
return False
rows = len(matrix)
columns = len(matrix[0])
i = 0
j = columns-1
while i=0:
if matrix[i][j] == target:
return True
elif matrix[i][j] > target:
j -= 1
else:
i += 1
return Fals



