国内比较好的软文网站,wordpress 做图库栏目,昆明软件定制,网站建设的博客编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性#xff1a;
每行的元素从左到右升序排列。每列的元素从上到下升序排列。
示例 1#xff1a; 输入#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,…编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性
每行的元素从左到右升序排列。每列的元素从上到下升序排列。
示例 1 输入matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target 5
输出true
示例 2 输入matrix [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target 20
输出false解法:从右上角看本质是一个二叉搜索树左边比自己小下面比自己大因此从右上角开始搜索如果当前值比的target大那就列左移否则行下移
class Solution {public boolean searchMatrix(int[][] matrix, int target) {if(matrix.length 0){return false;}int row 0;int col matrix[0].length - 1;while(row matrix.length col 0){if(matrix[row][col] target){return true;}else if(matrix[row][col] target){col--;}else {row;}}return false;}
}