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;
        }
    }
    

      

  • 相关阅读:
    tomcat启动脚本
    libcrypto.so.1.0.0内容丢失导致sshd无法运行解决方案
    linux最小安装
    linux下文件删除的原理
    Web服务器磁盘满故障深入解析
    入驻博客园,新的开始!!!
    其实我们都可以变得更加优秀!
    我的未来在哪里呢!
    学会选择
    SpringBoot+vue.js如何通过post方式实现导出excel
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9927960.html
Copyright © 2011-2022 走看看