zoukankan      html  css  js  c++  java
  • 240. Search a 2D Matrix II

    一、题目

      1、审题

      

      2、分析

        给出一个二维数组,每一行的元素、每一列的元素均有序。在此数组中查找 target 元素。

    二、解答

      1、思路

        方法一、

          在每一行中用二分查找法。

        public boolean searchMatrix(int[][] matrix, int target) {
            
            int rows, cols;
            if(matrix == null || (rows = matrix.length) == 0 || (cols = matrix[0].length) == 0)
                return false;
            
            int row = 0;
            while(row < rows) {
                int start = 0, end = cols - 1;
                if(matrix[row][0] > target)
                    return false;
                if(matrix[row][end] < target) {
                    row++;
                    continue;
                }
                while(start <= end) {
                    int mid = (end - start) / 2 + start;
                    if(matrix[row][mid] == target)
                        return true;
                    else if(matrix[row][mid] < target)
                        start = mid + 1;
                    else
                        end = mid - 1;
                }
                row++;
            }
            return false;
        }

      方法二、

        从二维数组的右上角开始向前、向下定位:

        ①、若 target 小于当前元素,则 target 不可能在当前列,因为列向下为升序。

        ②、若 target 大于当前元素,则 target 不可能在当前行,因为当前行为升序。

        public boolean searchMatrix(int[][] matrix, int target) {
            int rows, cols;
            if(matrix == null || (rows = matrix.length) == 0 || (cols = matrix[0].length) == 0)
                return false;
            
            // 从右上角开始查找
            int row = 0, col = cols - 1;
            while(col >= 0 && row < rows) {
                if(target == matrix[row][col])
                    return true;
                else if(target < matrix[row][col])
                    col--;
                else if(target > matrix[row][col])
                    row++;
            }
            return false;
        }
  • 相关阅读:
    php的下载与安装
    apache 的下载与配置
    Composer 安装与使用
    WampServer 的安装
    SQLServer主键约束和唯一约束的区别
    Mac如何修改Host
    解决XCode11中 [Application] The app delegate must implement the window property if it wants to use a main storyboard file.的问题
    Xcode10.1 import头文件无法索引
    iOS
    如何让windows服务器IIS支持.apk/.ipa文件下载
  • 原文地址:https://www.cnblogs.com/skillking/p/9942775.html
Copyright © 2011-2022 走看看