zoukankan      html  css  js  c++  java
  • LeetCode:搜索二维矩阵【74】

    LeetCode:搜索二维矩阵【74】

    题目描述

    编写一个高效的算法来判断 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

    题目分析

      这道题目比较简单,首先我们不从(0,0)出发,我们从(0,LAST)出发

    • 如果坐标值等于目标值,返回true。
    • 如果坐标值小于目标值,那说明这一行都小于目标值,我们直接移动到下一行,即增大x。
    • 如果坐标值大于目标值,那说明目标值如果存在的话一定就在这一行,我们缩小y。

      我们思考一个问题,目标值如果不存在的话!

      要么就是大于最后一行的最大值,或者小于某一行的最小值,总而言之就是越界了,所以我们返回FLASE的条件就是越界

    Java题解

    class Solution {
        public boolean searchMatrix(int[][] matrix, int target) {
            if(matrix.length==0)
                return false;
            int x = 0;
            int y = matrix[0].length-1;
            while((x>=0&&x<matrix.length)&&(y>=0&&y<matrix[0].length))
            {
                if(matrix[x][y]==target)
                    return true;
                else if(matrix[x][y]>target)
                    y--;
                else 
                    x++;
            }
            return false;
        }
    }
    

      

  • 相关阅读:
    Ubuntu常用命令
    Linux 虚拟机安装Ubuntu
    word 2019 方框中打勾
    apache httpd的安装和虚拟主机配置(基于centos 7)
    LoadRunner 12.5 community edition 试玩+Linux主机监控
    Directory Service目录服务
    TCP/IP脑图
    Qt样式选择器
    常见电脑进入BIOS的快捷键
    网线(RJ45接口)的接法
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9927960.html
Copyright © 2011-2022 走看看