思路:试了一下穷举,也通过了,提示没有足够的通过量以构造通过时间分布图,换了一个下台阶的方式,从最后一行第一个数字开始比较,如果该值小于target,则右移一步,如果大于,则向上移一行。结果时间仍然是600多ms。
public class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int x=matrix.length-1;
int y=0;
while (x>=0&&y<matrix[x].length) {
if (matrix[x][y]==target) {
return true;
}
if (matrix[x][y]>target) {
x--;
}else {
y++;
}
}
return false;
}
}
耗时:684ms。