题目的链接在这里:https://leetcode-cn.com/problems/search-a-2d-matrix/
题目大意
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。
一、示意图
二、解题思路
正常判断
正常判断
代码如下:
class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
//判断这个值是否存在
int row=matrix.length;
int col=matrix[0].length;
int start=0;
while (start<=row-1){
//先看看在哪个范围
if(target>=matrix[start][0]&&target<=matrix[start][col-1]){
//说明在这个范围内找
return isBool(matrix,target,start);
}
start++;
}
return false;
}
private boolean isBool(int[][] matrix, int target, int start) {
//那就在这行进行判断
for(int i=0;i<matrix[0].length;i++){
if(matrix[start][i]==target){
return true;
}
}
return false;
}
}