编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性: 每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 3 输出: true 示例 2: 输入: matrix = [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34, 50] ] target = 13 输出: false 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/search-a-2d-matrix 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
自己题解:
class Solution { public boolean searchMatrix(int[][] matrix, int target) { int i=matrix.length - 1; int j=0; while (true) { if (i > matrix.length - 1|| i<0 || j>matrix[i].length -1 || j<0) { return false; } int num = matrix[i][j]; if (num == target) { return true; } else if (num < target) { j++; } else { i--; } } } }
分析: