zoukankan      html  css  js  c++  java
  • Leetcode 240.搜索二维矩阵II

    搜索二维矩阵II

    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性:

    • 每行的元素从左到右升序排列。
    • 每列的元素从上到下升序排列。

    示例:

    现有矩阵 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。

    给定 target = 20,返回 false。

    从左下角往右上角找,若是小于target就往右找,若是大于target就往上找。时间复杂度O(m+n)  n 为行数,m为列数。

    例如找136

     1 public class Solution{
     2     public boolean searchMatrix(int[][] matrix,int target){
     3         if(matrix==null||matrix.length==0){
     4             return false;
     5         }
     6         if(matrix[0]==null||matrix[0].length==0){
     7             return false;
     8         }
     9         //find from bottom left to top right
    10         int n=matrix.length;
    11         int m=matrix[0].length;
    12         int x=n-1;
    13         int y=0;
    14         while(x>=0&&y<m){
    15             if(matrix[x][y]<target){
    16                 y++;
    17             }else if(matrix[x][y]>target){
    18                 x--;
    19             }else{
    20                 return true;
    21             }
    22         }
    23         return false;
    24     }
    25 }
  • 相关阅读:
    supervisor启动错误解决(二)
    删除文件某行
    离线安装
    docker中/var/lib/docker目录迁移
    if else 使用
    Django views函数添加装饰器
    Netty4
    Fast DFS(二)
    Fast DFS(一)
    SpringBoot和app之间跨域问题
  • 原文地址:https://www.cnblogs.com/kexinxin/p/10203107.html
Copyright © 2011-2022 走看看