首页 > 其他分享 >搜索二维矩阵(回溯)

搜索二维矩阵(回溯)

时间:2025-01-01 14:43:20浏览次数:1  
标签:false matrix int 矩阵 整数 二维 回溯 target

给你一个满足下述两条属性的 m x n 整数矩阵:

  • 每行中的整数从左到右按非严格递增顺序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回 false 。

 

示例 1:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 3
输出:true

示例 2:

输入:matrix = [[1,3,5,7],[10,11,16,20],[23,30,34,60]], target = 13
输出:false

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,矩阵,整数,二维,回溯,target
From: https://www.cnblogs.com/yueshengd/p/18645916

相关文章

  • N皇后(回溯)
    按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n皇后......
  • 分割回文串(回溯)
    给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。示例1:输入:s="aab"输出:[["a","a","b"],["aa","b"]]示例2:输入:s="a"输出:[["a"]]classSolution{public:vector<vector......
  • 单词搜索(回溯)
    给定一个 mxn 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。......
  • 括号生成(回溯)
    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例1:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]示例2:输入:n=1输出:["()"] classSolution{public://存储所有可能的有效括号组合的结果......
  • 组合总和(回溯)
    给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。candidates 中的 同一个 数字可以 无限制重复被选取 。如果至少一......
  • 电话号码的字母组合(回溯)
    给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意1不对应任何字母。 示例1:输入:digits="23"输出:["ad","ae","af","bd","be","bf","cd","ce","cf&qu......
  • 矩阵
    基本概念矩阵基本概念\(\begin{bmatrix}a_{11}&a_{12}&...&a_{1n}\\a_{21}&a_{22}&...&a_{2n}\\\cdots&\cdots&\cdots&\cdots\\a_{m1}&a_{m2}&\cdots&a_{mn}\\\end{bmatrix}\)称......
  • 牛客 NC20032 激光炸弹 二维前缀和
    #include<bits/stdc++.h>usingnamespacestd;inta[5010][5010];intpre[5010][5010];constintN=5e3;intmain(){ intn,m; cin>>n>>m; for(inti=0;i<n;i++) { intx,y,z; cin>>x>>y>>z; a[x][y]=z; } pre[0][0......
  • 穷举vs暴搜vs深搜vs回溯vs剪枝系列一>
    题目:  解析: 决策树:  代码设计:  代码: 写法一:path为全局变量privateintret,path,aim;publicintfindTargetSumWays(int[]nums,inttarget){aim=target;dfs(nums,0);returnret;}privatevoiddfs(i......
  • 团队管理必备:RACI责任矩阵让分工更高效
    在团队合作中,最怕的就是责任不清、任务分工混乱。谁该做什么,谁对结果负责,谁需要提供帮助,谁需要被通知?如果这些问题没有理清楚,就很容易出现任务没完成、团队内耗或者“甩锅”的情况。RACI责任矩阵正是为了解决这些问题的神器。什么是RACI矩阵?RACI矩阵可以简单理解为一个“责任分......