zoukankan      html  css  js  c++  java
  • LeetCode74 搜索二维矩阵

    LeetCode74 搜索二维矩阵

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

    每行中的整数从左到右按升序排列。 每行的第一个整数大于前一行的最后一个整数。

    示例 1:
    输入:
    matrix = [
      [1,   3,  5,  7],
      [10, 11, 16, 20],
      [23, 30, 34, 50]
    ]
    target = 3
    输出: true
    
    示例 2:
    输入:
    matrix = [
      [1,   3,  5,  7],
      [10, 11, 16, 20],
      [23, 30, 34, 50]
    ]
    target = 13
    输出: false
    
    思路

    从矩阵右上角开始比较

    target > matrix[i][j]   ==>   j++(下一列)
    
    target > matrix[i][j]   ==>   i--(往左移动)
    
    
    代码如下
    class Solution {
        public boolean searchMatrix(int[][] matrix, int target) {
            int line = matrix.length;
            if(line == 0){
                return false;
            }
            
            int column = matrix[0].length;
            if(column == 0){
                return false;
            }
            
            //System.out.println(line + "" + column);
            int i = 0  ;
            
            while(i<line){
                
                if(target > matrix[i][column -1]){
                    i++;
                    break;
                    }
                
                for(int j = column -1; j >=0 ; j--){
                    if(matrix[i][j] == target){
                        return true;
                    }
                    // System.out.println(matrix[i][j]);
                }
                i++;
            }
            return false;
        }
    }
    

     

    欢迎一起讨论

    Geooo的个人博客:https://geooo.gitee.io/geoooblog/

  • 相关阅读:
    Codeforces 46D Parking Lot
    矩阵快速幂
    Codeforces 295A Greg and Array
    hihocoder 1154 Spring Outing
    51NOD 1400 序列分解
    最短路之Dijkstra算法
    连通性1 求无向图的low值
    用数组实现临接表
    hihocoder 1181 欧拉路.二
    TCP多线程聊天室
  • 原文地址:https://www.cnblogs.com/Geooo/p/11279353.html
Copyright © 2011-2022 走看看