遍历:
c++
class Solution {
public:
bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
if( matrix.size()==0 || matrix.size()==0 ) {
return false;
}
int rows = matrix.size();
int columns =matrix[0].size();
for(int i=0; i<rows; i++){
for(int j=0; j<columns; j++){
if(matrix[i][j] == target){
return true;
}
}
}
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])
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<vector<int>>& matrix, int target) {
if(matrix.size()==0||matrix[0].size()==0){
return false;
}
int rows = matrix.size();
int columns =matrix[0].size();
int i = 0;
int j = columns-1;
while( i<rows && j>=0){
if(matrix[i][j] == target){
return true;
}else if( matrix[i][j] > target ){
j--;
}else{
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<rows and j>=0:
if matrix[i][j] == target:
return True
elif matrix[i][j] > target:
j -= 1
else:
i += 1
return Fals