题目:
74. 搜索二维矩阵
编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

每行中的整数从左到右按升序排列。
每行的第一个整数大于前一行的最后一个整数。

示例 1:

【leetcode】74. 搜索二维矩阵_矩阵


输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3

输出:true

示例 2:

【leetcode】74. 搜索二维矩阵_矩阵_02


输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13

输出:false

提示:
m == matrix.length
n == matrix[i].length
1 <= m, n <= 100
-104 <= matrix[i][j], target <= 104

思路
从右上角开始查找。
时间复杂度:O(log n)

class Solution {
public boolean searchMatrix(int[][] matrix, int target) {
int m = matrix.length;
int n = matrix[0].length;
for(int i = 0,j = n - 1; i < m && j >= 0;){
if(matrix[i][j] == target) return true;
else if (target > matrix[i][j]) i++;
else j--;
}
return false;
}
}