【LeetCode-中等题】240. 搜索二维矩阵 II

文章目录

    • 题目
    • 方法一:暴力双for查找
    • 方法二:二分查找,对每二维数组进行拆分,一行一行的进行二分查找
    • 方法三:列倒序Z字形查找

题目

在这里插入图片描述

方法一:暴力双for查找

public boolean searchMatrix(int[][] matrix, int target) {for (int[] row : matrix) {for (int element : row) {if (element == target) {return true;}}}return false;}

方法二:二分查找,对每二维数组进行拆分,一行一行的进行二分查找

public boolean searchMatrix(int[][] matrix, int target) {for(int i = 0 ; i<matrix.length;i++){boolean isTrue = search(matrix[i],target);if(isTrue) return true;}return false;}//二分查找方法public boolean search(int[] nums,int target){int begin = 0 ;//二分起点int end = nums.length-1;//二分末尾点while(begin <= end){int mid = (end - begin)/2 + begin; //取中间点下标int midNum = nums[mid];//中间元素//判断中间元素与target大小if(target == midNum)  return true;//如果中间元素等于目标元素  直接返回结果else if(target > midNum )  begin = mid+1; //如果中间元素小于目标值  说明寻找元素肯定在mid+1  ,  end区间  更新下次起点else if(target < midNum )  end   = mid-1;//同理}//循环完没有找到mid元素  说明不存在targetreturn false;}

方法三:列倒序Z字形查找

	//关键在于这个判断 if(matrix[row][col] > target)  col --;//若该位置的元素>目标元素,则往左移动一位else if(matrix[row][col] < target)  row ++;//若该位置的元素<目标元素,则往下移动一位else return true;//若满足相等的条件  则返回true

在这里插入图片描述

public boolean searchMatrix(int[][] matrix, int target) {int m = matrix.length;int n = matrix[0].length;int row = 0;//行int col = n - 1; //列while(row < m && col>=0){if(matrix[row][col] > target)  col --;//若该位置的元素>目标元素,则往左移动一位else if(matrix[row][col] < target)  row ++;//若该位置的元素<目标元素,则往下移动一位else return true;//若满足相等的条件  则返回true}return false;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/110726.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】UDP通信,实现文件的传输

目录 1 TCP与UDP比较 2 UDP 3 通信流程 4 实践 5 运行结果 1 TCP与UDP比较 2 UDP简介 UDP通信是无连接的,因此不需要

JAVA-编程基础-10-集合

Lison <dreamlison163.com>, v1.0.0, 2023.04.23 JAVA-编程基础-10-集合 文章目录 JAVA-编程基础-10-集合List、Set、Map、队列全面解析ListArrayList创建ArrayList 向ArrayList中添加元素 List、Set、Map、队列全面解析 Java 集合框架可以分为两条大的支线&#xff1a;…

Java中word转Pdf工具类

背景&#xff1a; 最近做的一个项目中&#xff0c;对于word转Pdf用的地方很多&#xff0c;特此记录 搭建总图&#xff1a; 代码部分&#xff1a; 1.需要的jar包&#xff1a; aspose-words-15.8.0-jdk16.jar 注&#xff1a;下载好这个jar包后&#xff0c;在项目的根目录新建一…

基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码

智慧工地聚焦施工现场岗位一线&#xff0c;围绕“人、机、料、法、环”五大要素&#xff0c;数字化工地平台与现场多个子系统的互联实现了工地业务间的互联互通和协同共享。数字化工地管理平台能够盘活工地各大项目之间孤立的信息系统&#xff0c;实现数据的统一接入、处理与维…

CSS实现白天/夜晚模式切换

目录 功能介绍 示例 原理 代码 优化 总结 功能介绍 在网页设计和用户体验中&#xff0c;模式切换功能是一种常见的需求。模式切换可以为用户提供不同的界面外观和布局方案&#xff0c;以适应其个人偏好或特定环境。在这篇博客中&#xff0c;我们将探索如何使用纯CSS实现一…

用变压器实现德-英语言翻译【01/8】:嵌入层

一、说明 本文是“用变压器实现德-英语言翻译”系列的第一篇文章。它引入了小规模的嵌入来建立感知系统。接下来是嵌入层的变压器使用。下面简要概述了每种方法&#xff0c;然后是德语到英语的翻译。 二、技术背景 嵌入层的目标是使模型能够详细了解单词、标记或其他输入之间的…

微商城分销系统免费源码_微商城分销系统设计功能开发_OctShop

要使用微商城分销系统源码来搭建或制作自己的微商城分销系统平台&#xff0c;那么&#xff0c;首先你需要知道什么是分销&#xff1f;通俗点讲就是买家或消费者成为商家或平台的分销商&#xff0c;通过推荐给分享好友&#xff0c;或其他的各种推广方式&#xff0c;如二维码&…

生产环境部署与协同开发 Git

目录 一、前言——Git概述 1.1 Git是什么 1.2 为什么要使用Git 什么是版本控制系统 1.3 Git和SVN对比 SVN集中式 Git分布式 1.4 Git工作流程 四个工作区域 工作流程 1.5 Git下载安装 1.6 环境配置 设置用户信息 查看配置信息 二、git基础 2.1 本地初始化仓库 ​编辑…

分段三次hermit插值

保形三次hermit插值 一、算法实现 一、插值函数建立 设函数 y F ( x ) yF(x) yF(x)在区间 [ a , b ] [a,b] [a,b]上有定义&#xff0c;且已知在离散点 a x 0 < x 1 < . . . < x n b ax_0<x_1<...<x_n b ax0​<x1​<...<xn​b上的值 y 0 , y…

Linux 查看当前文件夹下的文件大小

1.直接查看: ll 或者 ls -la #查看文件大小&#xff0c;以kb为单位 ll#查看文件大小&#xff0c;包含隐藏的文件&#xff0c;以kb为单位 ls -la2.以 M 或者 G 为单位查看&#xff0c;根据文件实际大小进行合适的单位展示 du -sh *

k8s集群搭建

文章目录 前言一、前置准备1.1 虚拟机准备1.2 关闭swap分区1.3 将桥接的IPv4流量传递到iptables链1.4 开启ipvs 二、容器化环境和组件安装2.1 docker安装2.2 设置docker加速镜像器2.4 设置yum镜像源2.5 安装kubeadm、kubelet和kubectl 三、集群搭建3.1 安装k8s所需镜像3.2 在ha…

LAMP 配置与应用

LAMP 架构的组成 LAM(M)P&#xff1a; L&#xff1a;linux A&#xff1a;apache (httpd) M&#xff1a;mysql, mariadb P&#xff1a;php, perl, python apache的功能&#xff1a; 第一&#xff1a;处理http的请求、构建响应报文等自身服务&#xff1b; 第二&#xff1a…

【C#学习笔记】数据类中常用委托及接口——以List<T>为例

文章目录 List\<T\>/LinkedList \<T\>为什么是神&#xff1f;&#xff08;泛型为什么是神&#xff09;一些常见&#xff0c;通用的委托和接口ComparisonEnumerator List<T>/LinkedList <T>为什么是神&#xff1f;&#xff08;泛型为什么是神&#xff0…

数据结构(Java实现)-栈和队列

栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 先进后出 栈的使用 栈的模拟实现 上述的主要代码 public class MyStack {private int[] elem;private int usedSize;public MyStack() {this.elem new int[5];}Overridepublic …

-9501 MAL系统没有配置或者服务器不是企业版(dm8达梦数据库)

dm8达梦数据库 -9501 MAL系统没有配置或者服务器不是企业版&#xff09; 环境介绍1 环境检查2 问题原因 环境介绍 搭建主备集群时&#xff0c;遇到报错-9501 MAL系统没有配置或者服务器不是企业版 1 环境检查 检查dmmal.ini配置文件权限正确 dmdba:dinstall&#xff0c;内容正…

3.RabbitMQ 架构以及 通信方式

一、RabbitMQ的架构 RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色&#xff1a; Publisher&#xff1a;消息的发布者&#xff0c;将消息发布到RabbitMQ中的ExchangeRabbitMQ服务&#xff1a;Exchange接收Publisher的消息&#xff0c;并且根据Routes策…

安装虚拟机

软硬件准备 软件&#xff1a;推荐使用VMwear&#xff0c;我用的是VMwear 12 镜像&#xff1a;CentOS7 ,如果没有镜像可以在官网下载 &#xff1a;http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso 硬件&#xff1a;因为是在宿主机上运行虚拟…

Android屏幕显示 android:screenOrientation configChanges 处理配置变更

显示相关 屏幕朝向 https://developer.android.com/reference/android/content/res/Configuration.html#orientation 具体区别如下&#xff1a; activity.getResources().getConfiguration().orientation获取的是当前设备的实际屏幕方向值&#xff0c;可以动态地根据设备的旋…

Maven之hibernate-validator 高版本问题

hibernate-validator 高版本问题 hibernate-validator 的高版本&#xff08;邮箱注解&#xff09;依赖于高版本的 el-api&#xff0c;tomcat 8 的 el-api 是 3.0&#xff0c;满足需要。但是 tomcat 7 的 el-api 只有 2.2&#xff0c;不满足其要求。 解决办法有 2 种&#xff…

RocketMQ mqadmin java springboot python 调用笔记

命令 mqadmin命令列表 yeqiangyeqiang-MS-7B23:/opt/rocketmq-all-5.1.3-bin-release$ sh bin/mqadmin The most commonly used mqadmin commands are:updateTopic Update or create topicdeleteTopic Delete topic from broker and NameServer.…