Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
•Integers in each row are sorted from left to right.
•The first integer of each row is greater than the last integer of the previous row.
For example,
Consider the following matrix:
[
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
Given target = 3, return true.
bool searchMatrix(int** matrix, int matrixRowSize, int matrixColSize, int target) {
int i,j;
for(i=0;i<matrixRowSize;i++)
{
for(j=0;j<matrixColSize;j++)
{
if(matrix[i][j]>target) return false;
if(matrix[i][j]==target) return true;
}
}
return false;
}
Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:
•Integers in each row are sorted in ascending from left to right.
•Integers in each column are sorted in ascending from top to bottom.
For example,
Consider the following matrix:
[
[1, 4, 7, 11, 15],
[2, 5, 8, 12, 19],
[3, 6, 9, 16, 22],
[10, 13, 14, 17, 24],
[18, 21, 23, 26, 30]
]
Given target = 5, return true.
Given target = 20, return
bool searchMatrix(int** matrix, int matrixRowSize, int matrixColSize, int target)
{
int i,j;
for(i=0;i<matrixRowSize;i++)
{
if(matrix[i][0]>target) return false;
if(matrix[i][matrixColSize-1]<target) continue;
for(j=0;j<matrixColSize;j++)
{
if(matrix[i][j]>target) break;
if(matrix[i][j]==target) return true;
}
}
return false;
}
并没有用二叉搜索!!!需要重新做!1