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

力扣 240.搜素矩阵II

题目描述

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

题解1

比较巧妙的排除法,首先从矩阵的右上角开始找起,如果右上角元素x比target大,那么说明右上角这一列都不会存在target,因此这一列就不需要再遍历;如果x比target小,那么就说明,右上角这一行都不会存在target,排除这一行。

实现代码

public static boolean searchMatrix2(int[][] matrix, int target) {int m  = matrix.length;//行数int n  = matrix[0].length;//列数int i  = 0 ;int j = n-1;while(i<m&&j>=0){if(matrix[i][j]==target){return true;}else if(matrix[i][j]>target){j--;}else{i++;}}return false;}

题解2

 使用常规方法对每一行进行二分查找,看是否存在target

实现代码

int m = matrix.length;int n = matrix[0].length;for (int i = 0; i < m; i++) {int l = 0;int r = n-1;while(l<=r){int mid = (r-l)/2+l;if(matrix[i][mid]==target){return true;}else if(matrix[i][mid]>target){r = mid-1;}else{l = mid+1;}}}return false;

http://www.lryc.cn/news/368339.html

相关文章:

  • ASUS华硕ROG幻14Air笔记本GA403UI(UI UV UU UJ)工厂模式原厂Windows11系统安装包,带MyASUS in WinRE重置还原
  • Spring Boot通过自定义注解和Redis+Lua脚本实现接口限流
  • 硬件工程师的蜗牛成长路
  • 简单记录玩4399游戏flash插件问题
  • GNU/Linux - 使用字符设备来操作GPIO
  • Android13 Settings 左上角箭头图标点击无效
  • WinForms 应用(.NET 8.0)使用ReportViewerCore.WinForms显示打印RDLC报表
  • 【网络安全】【深度学习】【入侵检测】SDN模拟网络入侵攻击并检测,实时检测,深度学习
  • 【CentOS】手动编译安装make、cmake、gcc、git
  • 45.django - 开始建立第一个项目
  • # 梯影传媒T6投影仪刷机方法及一些刷机工具链接
  • 【代码随想录算法训练营第37期 第三十二天 | LeetCode122.买卖股票的最佳时机II、55. 跳跃游戏、45.跳跃游戏II】
  • DP:回文串模型
  • STM32CubeMX软件的安装以及配置
  • 【适配鸿蒙next】Flutter 新一代混合栈管理框架
  • 车载电子电气架构 --- 车载信息安全
  • 【数据结构(邓俊辉)学习笔记】图04——双连通域分解
  • UI学习(二)
  • 【嵌入式】波特率9600,发送8个字节需要多少时间,如何计算?
  • jmeter -n -t 使用非GUI模式运行脚本说明
  • 网络流媒体协议——HLS协议
  • Linux服务器扩容及磁盘分区(LVM和非LVM)
  • 支持向量机
  • Kafka 架构
  • iOS 查看runtime源码的几种方法
  • 底板外设倒灌到处理器分析
  • 使用贝塞尔曲线实现一个iOS时间轴
  • 【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境
  • 在docker容器中使用gdb调试python3.11的进程
  • 堆排序要点和难点以及具体案例应用