当前位置: 首页 > news >正文

力扣74 搜索二维矩阵

获取矩阵的行数和列数

vector<vector<int>>& matrix

 matrix 是一个 vector<vector<int>> 类型的二维向量,其本质是一个嵌套的动态数组

matrix.size() 返回的是外层 vector 的大小,即有多少个 vector<int> 元素,也就是二维向量的行数

matrix[0] 是第一行的 vector<int>,即第一个 vector<int> 元素
matrix[0].size() 返回第一行的大小,也就是该行中 int 元素的数量,即列数

一维索引与二维坐标的转换

在二维数组中,如果将所有元素按行优先的方式展开为一维数组,那么任意一维索引 mid 对应的二维坐标为:

row = mid / n
col = mid % n

在 C++ 中,数组索引是从 0 开始的

错误代码

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m=matrix.size();int n=matrix[0].size();int left=0;int right=m*n;while(left<=right){int mid=left+(right-left)/2;int row=mid/n;int col=mid%n;if(target<matrix[row][col]){right=mid-1;}else if(target>matrix[row][col]){left=mid+1;}else{return true;}}return false;}
};

注意把right初试为m*n-1

正确代码

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m=matrix.size();int n=matrix[0].size();int left=0;int right=m*n-1;while(left<=right){int mid=left+(right-left)/2;int row=mid/n;int col=mid%n;if(target<matrix[row][col]){right=mid-1;}else if(target>matrix[row][col]){left=mid+1;}else{return true;}}return false;}
};
http://www.dtcms.com/a/264087.html

相关文章:

  • [密码学实战]深入解析ASN.1和DER编码:以数字签名值为例(三十一)
  • UniApp完全支持快应用QUICKAPP-以及如何采用 Uni 模式开发发行快应用优雅草卓伊凡
  • 从 Copilot 到 通用 Agent : 大厂在 AI Coding 上的应用和挑战
  • 华为云开始了“开发者空间 AI Agent 开发”活动
  • Anthropic 开源 LLM“电路追踪器”:首次可视化语言模型的“推理路径”!
  • SQLite与MySQL:嵌入式与客户端-服务器数据库的权衡
  • 使用mavros启动多机SITL仿真
  • 9-2 MySQL 分析查询语句:EXPLAIN(详细说明)
  • react-数据Mock实现——json-server
  • Jenkins 插件深度应用:让你的CI/CD流水线如虎添翼 [特殊字符]
  • 华锐互动:全方位定制化 VR 内容制作服务流程剖析​
  • [Python 基础课程]字符串
  • Redis集群数据流解析:从分层设计到一致性难题破解
  • Vue3 中 Excel 导出的性能优化与实战指南
  • A模块 系统与网络安全 第三门课 网络通信原理-3
  • Badoo×亚矩云手机:社交约会革命的“云端心跳加速剂“
  • 论文阅读:Align and Prompt (ALPRO 2021.12)
  • 狂神说 - Mybatis 学习笔记 --下
  • SVN 分支管理(本文以Unity项目为例)
  • 【C++】inline的作用
  • 齿轮的齿厚极限偏差如何确定?一起学习一下
  • Vue3——富文本
  • 地震灾害的模拟
  • win11,visual studio 2022,配置dcmtk,opencv
  • vue vxe-table 自适应列宽,根据内容自适应宽度的2种使用方式
  • MySQL非阻塞创建索引的方法
  • golang generic 2022-04-13
  • Linux 系统重启 reboot与重置reset深度解析
  • 【读代码】百度开源大模型:ERNIE项目解析
  • 软件测试复习之单元测试