2019-11-1 吴亲库里 库里的深夜食堂
编写一个算法,从m*n 的矩阵中查找出给定的值 如果存在返回true,否则返回false。这个矩阵的特点是每一行的元素从左到右升序,每一列从上到下升序。
****
因为矩阵的行列都是有序的,所有我们可以通过不断的去修剪行列达到最终的效果。从左下角的第一个数出发。如果大于给定值,说明当前值可以向上移动一行。如果小于给定值,说明当前值可以向右移动一列。
/**
* @param Integer[][] $matrix
* @param Integer $target
* @return Boolean
*/
function searchMatrix($matrix, $target) {
$col=0;
$row=count($matrix)-1;
while($col<count($matrix[0]) && $row>=0){
if($matrix[$row][$col]>$target){
$row--;
}else if ($matrix[$row][$col]<$target){
$col++;
}else{
return true;
}
}
return false;
}