首页 > 其他分享 >力扣 240. 搜索二维矩阵 II

力扣 240. 搜索二维矩阵 II

时间:2022-11-14 21:01:20浏览次数:77  
标签:力扣 target 矩阵 II 二维 搜索 240 升序 matrix

240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

  • 每行的元素从左到右升序排列。
  • 每列的元素从上到下升序排列。

示例 1:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 5
输出:true

示例 2:

输入:matrix = [[1,4,7,11,15],[2,5,8,12,19],[3,6,9,16,22],[10,13,14,17,24],[18,21,23,26,30]], target = 20
输出:false

提示:

  • m == matrix.length
  • n == matrix[i].length
  • 1 <= n, m <= 300
  • -109 <= matrix[i][j] <= 109
  • 每行的所有元素从左到右升序排列
  • 每列的所有元素从上到下升序排列
  • -109 <= target <= 109

题解

力扣 74. 搜索二维矩阵的变种,不再保障每行最尾小于下行头的值,所以两次二分无法解决,可以选择左下角或者右上角建立坐标系(因为这两个角刚好是一行最小一列最大或者一行最大一列最小的点),接下来进行判断,选择左下角:

  • 如果当前值>t,则点需要往上边移动,因为上边点的值更小
  • <t,右移动,寻找更大的值
  • =t,寻找结束
查看代码
 class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int col=0,row=matrix.size()-1;//初始坐标在左下角
        while(row>=0&&col<matrix[0].size()){//行往上走,最低0,列往右走,最大就是一行的长度
            if(matrix[row][col]==target)
                return true;
            if(matrix[row][col]>=target){
                row--;
            }
            else
                col++;
        }
        return false;
    }
};

标签:力扣,target,矩阵,II,二维,搜索,240,升序,matrix
From: https://www.cnblogs.com/fudanxi/p/16890380.html

相关文章

  • 力扣278(java&python)-第一个错误的版本(简单)
    题目:你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本......
  • 力扣24 两两交换链表中的节点
    题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例:输入:head=[1,2,3,4]......
  • IIC协议简介
    IIC总线介绍IIC也称I2C,是一个多主从的串行总线,由飞利浦公司发明的通讯总线,属于半双工同步传输类总线,仅由两条线就能完成多机通讯,一条SCL时钟线,另外一条双向数据线SDA,IIC总......
  • 剑指 Offer 58 - II. 左旋转字符串
    剑指Offer58-II.左旋转字符串字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"ab......
  • Ftp连接-200 Switching to ASCII mode,227 Entering Passive Mode
      测试ftp服务器是否部署成功,最简单的方法,就是找个windows系统直连服务器,能连上就说明服务部署成功了。不过,有时候即使ftp服务部署成功了,windows系统依然连接不......
  • .net core iis 部署时通用的web.config配置
    <?xmlversion="1.0"encoding="utf-8"?><configuration><locationpath="."inheritInChildApplications="false"><system.webServer><handlers><add......
  • 253.会议室II
    给你一个会议时间安排的数组 intervals ,每个会议时间都会包括开始和结束的时间 intervals[i]=[starti,endi] ,返回 所需会议室的最小数量 。 示例1:输入:interva......
  • 力扣206 反转链表
    题目:给你单链表的头节点head,请你反转链表,并返回反转后的链表。示例:输入:head=[1,2,3,4,5]输出:[5,4,3,2,1] 双指针法:两个指针,cur指向当前节点,用来遍历,pre......
  • P1182 数列分段 Section II
    题干 记录为了练二分答案过程中发生了以下脑瘫错误1.加了两次最后一个数 2.这个是因为凑答案,还是对二分板子不熟属于是个二分答案的板子,记一下,代码如下其中有......
  • 力扣 74. 搜索二维矩阵
    74.搜索二维矩阵编写一个高效的算法来判断 mxn 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一......