搜索二维矩阵

来源:互联网 发布:52单片机输出电压 编辑:程序博客网 时间:2024/05/17 03:36

容易 搜索二维矩阵

27%
通过

写出一个高效的算法来搜索 m × n矩阵中的值。

这个矩阵具有以下特性:

  • 每行中的整数从左到右是排序的。
  • 每行的第一个数大于上一行的最后一个整数。
您在真实的面试中是否遇到过这个题? 
Yes
样例

考虑下列矩阵:

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

给出 target = 3,返回 true

挑战

O(log(n) + log(m)) 时间复杂度

public class Solution {    /**     * @param matrix, a list of lists of integers     * @param target, an integer     * @return a boolean, indicate whether matrix contains target     */    public boolean searchMatrix(int[][] matrix, int target) {        // write your code here        int m=-1;               int lan = matrix.length;                if(lan == 0)        return false;         int len = matrix[0].length;        for(int i=0;i<lan;i++)        {        if(matrix[i][0]==target)        return true;        else if(i==lan-1)        {        m = lan-1;        break;        }                else if(matrix[i][0]<target && matrix[i+1][0]>target)        {        m = i;        break;        }        }        for(int i=0;i<len;i++)        {        if(matrix[m][i]==target)        return true;        }return false;    }}






0 0
原创粉丝点击