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

      

  • 相关阅读:
    jQuery插件实践之轮播练习(二)
    jQuery插件实践之轮播练习(一)
    AngularJS+Node.js+socket.io 开发在线聊天室
    Ubuntu上部署Ghost博客
    综合架构的简述
    进程
    路由配置
    计算机专用英语词汇1695个词汇表
    Linux打包压缩解压工具
    磁盘知识体系结构
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9927960.html
Copyright © 2011-2022 走看看