题目
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。


思路
两个任务:
1.判断有没有target
2.判断矩阵是否符合条件
通过一个二重循环实现。用1个prio变量记录每一行中前一个变量的值,进行比较,切换行时修改值为当前行的第一个值。
代码
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int flag = 0;
for(int i = 0; i < matrix.length;i++){
int prio = matrix[i][0];
for(int j=0; j<matrix[0].length;j++){
if(j >0 && matrix[i][j] < prio ){
return false;
}
if(target == matrix[i][j]){
flag = 1;
}
prio = matrix[i][j];
}
}
if(flag == 1){
return true;
}else{
return false;
}
}
}

本文介绍了一种高效的算法,用于检查 mxn 矩阵中是否存在特定目标值,同时确保矩阵中每行按升序排列且首元素大于前一行末元素。通过双重循环实现,验证矩阵条件并返回查找结果。

被折叠的 条评论
为什么被折叠?



