Search a 2D Matrix II

来源:互联网 发布:算法导论第四章答案 编辑:程序博客网 时间:2024/06/16 16:02
/* * Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:Integers in each row are sorted in ascending from left to right.Integers in each column are sorted in ascending from top to bottom.For example,Consider the following 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]]Given target = 5, return true.Given target = 20, return false. *  * */public class Solution {public static void main(String[] args) {// TODO Auto-generated method stub}public boolean searchMatrix(int[][] matrix, int target) {        //通过对右上角的数和target做比较,如果matrix[][]>target则说明该列不可能存在此数,则j--//如果matrix[][]<target则说明该行不可能存在此数,则i++if(matrix.length == 0)return false;//int i = matrix.length;//行数int j = matrix[0].length;//列数//i -= 1;int i = 0;j -= 1;while(i<matrix.length&&j>=0){int x = matrix[i][j];if(x == target)return true;else if(x < target)++i;else--j;}return false;    }}

0 0