首页 > 其他分享 >搜索二维矩阵 II

搜索二维矩阵 II

时间:2024-12-20 22:52:34浏览次数:4  
标签:false matrix int 矩阵 II 二维 搜索 target

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

 思路:对每行进行二分搜索,若某行第一个元素就大于target,则提前终止搜索

 

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int m = matrix.size();
        int n = matrix[0].size();
        //针对每行进行二分搜索
        for(int i=0;i<m;i++){
            if(matrix[i][0]>target){//该行第一个元素就大于target,提前终止搜索
                return false;
            }
            //对该行进行二分搜索
            int left = 0,right=n-1;
            while(left<=right){
                int mid = left+(right-left)/2;
                if(matrix[i][mid]==target){
                    return true;
                }else if(matrix[i][mid]>target){
                    right = mid-1;
                }else{
                    left = mid+1;
                }
            }
        }
        return false;
    }
};

 

标签:false,matrix,int,矩阵,II,二维,搜索,target
From: https://www.cnblogs.com/yueshengd/p/18620079

相关文章

  • 螺旋矩阵
    给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。示例1:输入:matrix=[[1,2,3],[4,5,6],[7,8,9]]输出:[1,2,3,6,9,8,7,4,5]示例2:输入:matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]思路:设置好边界......
  • 矩阵置零(标记数组)
    给定一个 mxn 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。示例1:输入:matrix=[[1,1,1],[1,0,1],[1,1,1]]输出:[[1,0,1],[0,0,0],[1,0,1]]示例2:输入:matrix=[[0,1,2,0],[3,4,5,2],[1,3,1,5]]输出:[[0,0,0,0],[0,4,5,0],[0,......
  • 集星云推短视频矩阵系统:重塑短视频营销格局
    在瞬息万变的数字化时代,短视频已然成为连接用户与品牌的桥梁,为企业和个人创作者提供了前所未有的营销机遇。然而,面对日益激烈的市场竞争,如何高效、精准地实施短视频营销策略,成为众多企业和创作者面临的重大挑战。在此背景下,集星云推短视频矩阵系统应运而生,它以其卓越的功能、高......
  • 一文告诉你什么是RACI矩阵——附应用方案
    RACI是一个常用于项目管理和团队协作中的责任分配矩阵(ResponsibilityAssignmentMatrix)。它清晰地界定了项目或工作中每个角色(或个体)的职责,确保所有相关方都明确自己的任务和责任范围。RACI矩阵中的每个字母代表不同的责任类型:R(Responsible)负责:○负责执行任务的人。这是直接负......
  • 【C语言1】C语言常见概念(总结复习篇)——库函数、ASCII码、转义字符
    文章目录前言一、C语言是什么?二、编译器的选择——VS2022三、main函数四、printf函数五、库函数六、关键字七、字符和ASCII编码八、字符串和'\0'九、转义字符十、注释总结前言上周考完四级(明年再战hh)和两门考试,接下来一个月将迎来其他学科的期末考试,所以这一个月......
  • 805 石子游戏 III
    //805石子游戏III.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/845Alice和Bob正在玩一个关于石头的游戏。共有n(n为偶数)堆石子,其中第i堆最初含有ai个石子。他们轮流选择n2堆非空石子,每堆移除......
  • 804 石子游戏 II
    //804石子游戏II.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/22/problem/738Alice和Bob正在玩一个关于石子的游戏。共有n堆石子,其中第i堆最初含有ai个石子。他们轮流执行下列操作之一,从Alice开始。把......
  • shader 线性代数 矩阵
               ......
  • RTL8211F以太网千兆RGMII开发板 使用说明
    深圳市飞录科技有限公司www.szfpga.com1.概述    RGMII 开发板主芯片是RTL8211FD。配套国产GOWIN的2AR-18和NR-9C的开发板,测试RGMII的千兆以太网数据发送和接收功能。  开发板的代码是基于MAC模式,通过循环发送计数器来判断包发送和接收是否正确。   2.操......
  • harmony_flutter_qrcode(生成二维码)
    harmony_flutter_qrcode(生成二维码)一.MethodChannel1.flutter端代码创建MethodChannel接收ohos端传递过来的状态值classRecognitionManager{staticconstMethodChannel_channel=constMethodChannel('recognition_qrcode');staticFuture<String>ge......