74. 搜索二维矩阵
Posted 五月的海湾
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了74. 搜索二维矩阵相关的知识,希望对你有一定的参考价值。
package leetcode; public class demo_74 { public boolean searchMatrix(int[][] matrix, int target) { //如果目标值大于数组最大值或小于数组最小值,则不存在 if(matrix[0][0]>target||matrix[matrix.length-1][matrix[0].length-1]<target) {return false;} int i; //找出目标值可能存在的行数 for(i=0;i<matrix.length;i++) { if(matrix[i][matrix[0].length-1]>=target) {break;} } //如果当前行的最小值大于目标值,则不存在 if(matrix[i][0]>target) {return false;} int left=0; int right=matrix[0].length-1; int mid; //二分法查找所在行可能的列数 while(left<=right) { mid=(left+right)/2; if(matrix[i][mid]==target) {return true;} if(matrix[i][mid]>target) {right=mid-1;} if(matrix[i][mid]<target) {left=mid+1;} } return false; } public static void main(String[] args) { // TODO Auto-generated method stub demo_74 d74=new demo_74(); int[][] matrix= {{1,3,5,7},{11,13,16,20},{23,34,36,60}}; System.out.println(d74.searchMatrix(matrix, 3)); } }
以上是关于74. 搜索二维矩阵的主要内容,如果未能解决你的问题,请参考以下文章
[JavaScript 刷题] 二分搜索 - 搜索二维矩阵, leetcode 74