平度168网站建设,中国建设教育协会官网证书查询,南昌公司做网站,微信网站界面编写一个高效的算法来判断 m x n 矩阵中#xff0c;是否存在一个目标值。该矩阵具有如下特性#xff1a;
每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。 示例 1:
输入: matrix [ [1, 3, 5, 7], [10, 11, 16, 20], [23, 30, 34,…编写一个高效的算法来判断 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
思路整个二维数组是有序的二分查找即可。
class Solution {public boolean searchMatrix(int[][] matrix, int target) {if (matrix null || matrix.length 0) {return false;}int row matrix.length;int col matrix[0].length;int start 0;int end row * col - 1;while (start end) {int mid start (end - start) / 2;if (matrix[mid / col][mid % col] target)return true;else if (matrix[mid / col][mid % col] target)end mid - 1;else start mid 1;}return false;}
}