首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

【LeetCode】Search a 2D Matrix (杨氏矩阵查寻)

2013-10-13 
【LeetCode】Search a 2D Matrix (杨氏矩阵查找)Write an efficient algorithm that searches for a value i

【LeetCode】Search a 2D Matrix (杨氏矩阵查找)

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 from left to right.
  • The first integer of each row is greater than the last integer of the previous row.

    For example,

    Consider the following matrix:

    [  [1,   3,  5,  7],  [10, 11, 16, 20],  [23, 30, 34, 50]]

    Given target = 3, return true.

    每一行递增,每一列递增,那么,从右上角(7)开始,如果该数小于target,那么往下走,如果该数大于target,那么往左走,知道查找到或者

    走出矩阵的范围。复杂度是O(m+n)

    import java.util.Arrays;public class Solution {    public boolean searchMatrix(int[][] matrix, int target) {        // Note: The Solution object is instantiated only once and is reused by each test case.        int m = matrix.length;        int n = matrix[0].length;        int i = 0, j = n - 1;        while(i < m && j >= 0)        {            if(matrix[i][j] == target)                return true;            else if(matrix[i][j] < target)                 i++;            else j--;        }        return false;    }}



热点排行