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

【力扣】240.搜索二维矩阵 II

题目

我的代码

class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for(int i=0;i<matrix.size();i++){for(int j=0;j<matrix[0].size();j++){if(target==matrix[i][j]){return true;}else if(target<matrix[i][j]){break;}}if(matrix[i][0]>target){break;}}return false;}
};

Z字搜索法

我的解法实在招笑,自以为优化了,其实优化了个寂寞,一看答案惊为天人。

思路:

我们可以从矩阵 matrix 的右上角 (0,n−1) 进行搜索。在每一步的搜索过程中,如果我们位于位置 (x,y),那么我们希望在以 matrix 的左下角为左下角、以 (x,y) 为右上角的矩阵中进行搜索,即行的范围为 [x,m−1],列的范围为 [0,y]:

    如果 matrix[x,y]=target,说明搜索完成;

    如果 matrix[x,y]>target,由于每一列的元素都是升序排列的,那么在当前的搜索矩阵中,所有位于第 y 列的元素都是严格大于 target 的,因此我们可以将它们全部忽略,即将 y 减少 1;

    如果 matrix[x,y]<target,由于每一行的元素都是升序排列的,那么在当前的搜索矩阵中,所有位于第 x 行的元素都是严格小于 target 的,因此我们可以将它们全部忽略,即将 x 增加 1。

在搜索的过程中,如果我们超出了矩阵的边界,那么说明矩阵中不存在 target。

代码与AC截图

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

相关文章:

【力扣】240.搜索二维矩阵 II

题目 我的代码 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {for(int i0;i<matrix.size();i){for(int j0;j<matrix[0].size();j){if(targetmatrix[i][j]){return true;}else if(target<matrix[i][j]){brea…...

RabbitMQ 从入门到精通:从工作模式到集群部署实战(二)

接上篇&#xff1a;《RabbitMQ 从入门到精通&#xff1a;从工作模式到集群部署实战&#xff08;一&#xff09;》 链接 文章目录 4.安装RabbitMQ Messaging Topology Operator 裸金属环境部署RabbitMQ部署单实例部署集群 4.安装RabbitMQ Messaging Topology Operator 使用 cer…...

编程AI深度实战:大模型哪个好? Mistral vs Qwen vs Deepseek vs Llama

随着开源 LLM 的发展&#xff0c;越来越多的模型变得专业化&#xff0c;“代码”LLM 变得非常流行。这些 LLM 旨在比其 “常识” 对应物更小&#xff0c;但旨在超越更大的通用模型的编码性能。 这些模型以极低的成本提供大型模型的功能&#xff0c;进一步使本地 LLM 空间民主化…...

11.kafka开启jmx

方式一: 1.进入/opt/kafka_2.13-3.3.2/bin目录 命令: cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 ~]# cd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# pwd /opt/kafka_2.13-3.3.2/bin [root@rhel77 bin]# 2.备份kafka-run-class.sh 命令: cp kafka-run-class.sh …...

基于钉钉API的连接器实现:企业数据集成与自动化管理

文章目录 概要背景与需求钉钉API概述连接器实现小结 概要 在当今数字化时代&#xff0c;企业面临着海量数据的管理与整合挑战。钉钉作为国内广泛使用的办公协作平台&#xff0c;提供了丰富的API接口&#xff0c;支持企业进行数据集成与自动化管理。本文将介绍如何通过钉钉API实…...

JAVA 二维列表的基础操作与异常

在Java中创建二维 ArrayList&#xff08;即嵌套列表&#xff09;的方法有多种&#xff0c;下面我将详细介绍常用的几种方式&#xff0c;并分析它们的区别和适用场景。 1. 使用嵌套 ArrayList 创建二维列表 方法一&#xff1a;直接嵌套 ArrayList 这是最常用的方法&#xff0c…...

将仓库A分支同步到仓库B分支,并且同步commit提交

一、 问题 有一仓库A 和 一仓库B&#xff0c; 需要将仓库A分支a1所有提交同步推送到仓库B分支b1上 二、 解决 2.1、 首先需要仓库A、仓库B的权限&#xff0c; 2.2、将仓库A clone到本地&#xff0c; 进入A目录&#xff0c;并且切换到a1分支 cd A ## A 为A仓库clone到本地代…...

使用java代码操作rabbitMQ收发消息

SpringAMQP 将来我们开发业务功能的时候&#xff0c;肯定不会在控制台收发消息&#xff0c;而是应该基于编程的方式。由于RabbitMQ采用了AMQP协议&#xff0c;因此它具备跨语言的特性。任何语言只要遵循AMQP协议收发消息&#xff0c;都可以与RabbitMQ交互。并且RabbitMQ官方也…...

mysql8安装时提示-缺少Microsoft Visual C++ 2019 x64 redistributable

MySQL8.0安装包mysql-8.0.1-winx64进行安装&#xff0c;提示&#xff1a;This application requires Visual Studio 2019 x64Redistributable, Please install the Redistributable then runthis installer again。出现这个错误是因为我们电脑缺少Microsoft Visual C 这个程序&…...

WindowsServer搭建内网Gitea【中文更方便使用】

特点&#xff1a; 轻量级&#xff1a;占用系统资源少&#xff0c;对服务器硬件要求较低&#xff0c;适合小型企业或团队使用。部署和维护相对简单&#xff0c;即使没有专业的运维人员也能轻松搭建。 功能齐全&#xff1a;具备基本的代码托管功能&#xff0c;如仓库管理、分支管…...

leetcode 907. 子数组的最小值之和

题目如下 数据范围 观察数据范围理论上平方复杂度的算法计算次数逼近1e9还不至于超时&#xff0c;但是由于有mod 1e9导致超时。所以本题不能靠暴力枚举来解决。 所以我们可以思考如何在枚举上面减少计算次数&#xff1a;第一种枚举法&#xff1a;最外层i控制子数组的左边界&…...

WordPress自定义.js文件排序实现方法

在WordPress中&#xff0c;要将插件引用的.js文件放到所有.js文件之后加载&#xff0c;可以通过以下方法实现&#xff1a; 方法一&#xff1a;调整wp_enqueue_script的加载顺序 在插件的主文件中&#xff0c;使用wp_enqueue_script函数加载.js文件时&#xff0c;将$in_footer…...

摄像头模块烟火检测

工作原理 基于图像处理技术&#xff1a;分析视频图像中像素的颜色、纹理、形状等特征。火焰通常具有独特的颜色特征&#xff0c;如红色、橙色等&#xff0c;且边缘呈现不规则形状&#xff0c;还会有闪烁、跳动等动态特征&#xff1b;烟雾则表现为模糊、无固定形状&#xff0c;…...

【拼十字——树状数组】

题目 暴力代码 30% #include <bits/stdc.h> using namespace std; using ll long long; const int N 1e5 10; const int mod 1e9 7; int n; int l[N], w[N], c[N]; int main() {cin >> n;ll ans 0;for (int i 1; i < n; i){cin >> l[i] >> …...

脚手架开发【实战教程】prompts + fs-extra

创建项目 新建文件夹 mycli_demo 在文件夹 mycli_demo 内新建文件 package.json {"name": "mycli_demo","version": "1.0.0","bin": {"mycli": "index.js"},"author": "","l…...

Fiddler Classic(HTTP流量代理+半汉化)

目录 一、关于Fiddler (一) Fiddler Classic (二) Fiddler Everywhere (三) Fiddler Everywhere Reporter (四) FiddlerCore (五) 总结 二、 软件安全性 1. 软件安装包 2. 软件汉化dll 三、安装与半汉化 1. 正常打开安装包点击下一步安装即可&#xff0c;安装路径自…...

基于yolov11的阿尔兹海默症严重程度检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv11的阿尔兹海默症严重程度检测系统是一种创新的医疗辅助工具&#xff0c;旨在通过先进的计算机视觉技术提高阿尔兹海默症的早期诊断和病情监测效率。阿尔兹海默症是一种渐进性的神经退行性疾病&#xff0c;通常表现为认知障碍、记忆丧失和语言障碍等症状…...

玩转Docker | 使用Docker部署httpd服务

玩转Docker | 使用Docker部署httpd服务 前言一、准备工作环境确认检查操作系统准备网站目录和配置文件二、拉取httpd镜像三、运行httpd容器运行容器命令检查容器状态四、验证httpd服务浏览器访问测试错误排查五、容器管理与维护查看容器状态停止和启动容器更新网站内容和配置六…...

力扣1022. 从根到叶的二进制数之和(二叉树的遍历思想解决)

Problem: 1022. 从根到叶的二进制数之和 文章目录 题目描述思路复杂度Code 题目描述 思路 遍历思想(利用二叉树的先序遍历) 1.在先序遍历的过程中&#xff0c;用一个变量path记录并更新其经过的路径上的值&#xff0c;当遇到根节点时再将其加到结果值res上&#xff1b; 2.该题…...

排序算法--基数排序

核心思想是按位排序&#xff08;低位到高位&#xff09;。适用于定长的整数或字符串&#xff0c;如例如&#xff1a;手机号、身份证号排序。按数据的每一位从低位到高位&#xff08;或相反&#xff09;依次排序&#xff0c;每次排序使用稳定的算法&#xff08;如计数排序&#…...

PyTorch张量操作实战:从基础运算到高效数据处理

1. PyTorch张量基础&#xff1a;从零开始理解多维数组 第一次接触PyTorch张量时&#xff0c;我完全被这个看似复杂的概念搞懵了。直到有一天&#xff0c;我把张量想象成俄罗斯套娃&#xff0c;突然就豁然开朗了。最外层的套娃是最高维度&#xff0c;每打开一层就降一个维度&…...

Druid监控界面安全加固实战:从暴露风险到生产级防护

1. Druid监控界面暴露风险全景扫描 上周帮客户做安全审计时&#xff0c;发现他们的订单系统监控页面居然能直接通过公网IP访问&#xff0c;打开/druid/index.html就能看到所有SQL执行记录和会话信息。这种场景太典型了——很多团队在开发阶段为了方便调试&#xff0c;把Druid监…...

Mac新手必看:保姆级教程教你用阿里源加速Homebrew安装(附一键脚本)

Mac新手必备&#xff1a;用阿里云镜像极速部署Homebrew全攻略 刚入手MacBook的你&#xff0c;可能正摩拳擦掌准备搭建开发环境。但当你在终端输入brew install python后&#xff0c;进度条却像蜗牛爬行——这不是你的网络问题&#xff0c;而是Homebrew默认从GitHub拉取资源时&a…...

告别‘Hello World’:用Gin框架从零搭建一个带用户登录和文件上传的Web服务(Go 1.21+)

告别‘Hello World’&#xff1a;用Gin框架从零搭建一个带用户登录和文件上传的Web服务&#xff08;Go 1.21&#xff09; 当你已经掌握了Go语言的基础语法&#xff0c;接下来最令人兴奋的莫过于亲手构建一个真实的Web服务。Gin框架以其高性能和简洁的设计&#xff0c;成为Go开发…...

探索ROCm:从基础到实践的完整路径

探索ROCm&#xff1a;从基础到实践的完整路径 【免费下载链接】ROCm AMD ROCm™ Software - GitHub Home 项目地址: https://gitcode.com/GitHub_Trending/ro/ROCm ROCm&#xff08;Radeon Open Compute&#xff09;是AMD推出的开源GPU计算平台&#xff0c;为高性能计算…...

Mod5实战:从零构建大气辐射传输模拟与辐照度计算全流程

1. 从零开始&#xff1a;为什么需要大气辐射传输模拟&#xff1f; 第一次接触大气辐射传输模拟的朋友可能会问&#xff1a;这玩意儿到底有什么用&#xff1f;简单来说&#xff0c;就像给地球大气层做CT扫描。我在做光伏电站选址评估时&#xff0c;就深刻体会到它的价值——通过…...

ONNX Runtime C++部署踩坑记:GetInputName已弃用,手把手教你改用GetInputNameAllocated

ONNX Runtime C部署实战&#xff1a;从GetInputName到GetInputNameAllocated的平滑迁移指南 在深度学习模型部署的生态系统中&#xff0c;ONNX Runtime凭借其跨平台特性和高性能推理能力&#xff0c;已成为工业界广泛采用的推理引擎。然而&#xff0c;随着其C API的迭代升级&a…...

Python OCR实战:手把手教你解决pytesseract的TesseractError,搞定chi_sim.traineddata缺失问题

Python OCR实战&#xff1a;彻底解决chi_sim.traineddata缺失的终极指南 当你第一次尝试用Python的pytesseract库识别中文文本时&#xff0c;那个刺眼的红色报错信息很可能让你措手不及。别担心&#xff0c;这不是你代码的问题&#xff0c;而是大多数新手都会遇到的经典障碍。…...

从文档智能处理到自动化工作流:现代开发技能的全栈实践

从文档智能处理到自动化工作流&#xff1a;现代开发技能的全栈实践 【免费下载链接】skills 本仓库包含的技能展示了Claude技能系统的潜力。这些技能涵盖从创意应用到技术任务、再到企业工作流。 项目地址: https://gitcode.com/GitHub_Trending/skills3/skills 在日常开…...

特征选择新思路:Laplacian Score与PCA/Lasso对比实验报告

特征选择方法深度对比&#xff1a;Laplacian Score在真实数据集中的突围表现 当面对高维数据时&#xff0c;特征选择就像是在嘈杂的市场中寻找真正有价值的声音。传统的PCA和Lasso方法已经服务了我们多年&#xff0c;但Laplacian Score带来的图论视角正在悄然改变游戏规则。本文…...