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

    /*
    左下角的元素是这一行中最小的元素,同时又是这一列中最大的元素。比较左下角元素和目标:
    1.若左下角元素等于目标,则找到
    2.若左下角元素大于目标,则目标不可能存在于当前矩阵的最后一行,问题规模可以减小为在去掉最后一行的子矩阵中寻找目标
    3.若左下角元素小于目标,则目标不可能存在于当前矩阵的第一列,问题规模可以减小为在去掉第一列的子矩阵中寻找目标
    4.若最后矩阵减小为空,则说明不存在
    */
    
    //给定一个 m * n 的矩阵 matrix ,注意区分 matrix.length 、matrix[0].length
    class Solution {
        public boolean searchMatrix(int[][] matrix, int target) {
            //边界判断
            if(matrix == null || matrix.length == 0) return false;
            //定义俩个指针,指向左下角元素 row为行,col为列
            int row = 0;
            int col = matrix[0].length - 1;
            //开始寻找
            while(row < matrix.length && col >= 0){ //矩阵元素不能跳出矩阵,相当于条件4
                if(matrix[row][col] == target){ //条件1
                    return true;
                }else if(matrix[row][col] > target){ //条件2
                    col--;
                }else { //条件3 只剩小于目标这种情况
                    row++;
                }
            }
            return false; //条件4
        }
    }
  • 相关阅读:
    js加法计算器
    js基础语句
    箭头点击左右滚动-18
    返回头部,滚动显示-17
    图片定位一个地方
    最值一看专题图片轮播图-16
    右侧常用浮动导航,返回顶部-15
    产业带多种轮播效果,头部效果-14
    分辨率判断-13
    图片自动滚动,鼠标滑过悬停-12
  • 原文地址:https://www.cnblogs.com/peanut-zh/p/13902672.html
Copyright © 2011-2022 走看看