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

day12 leetcode-hot100-21(矩阵4)

240. 搜索二维矩阵 II - 力扣(LeetCode)

1.暴力法O(m*n)

思路:两层for循环即可。

2.二分查找O(m*logn)

思路:每行都用二分查找,因为每行都是排好序的

class Solution {public boolean searchMatrix(int[][] matrix, int target) {for(int[] row : matrix){if(search_t(row,target)){return true;}}return false;}public boolean search_t(int[] nums,int t){int l=0;int r=nums.length-1;while(l<=r){int mid=(r-l)/2+l;if(nums[mid]==t){return true;}if(nums[mid]>t){r=mid-1;}if(nums[mid]<t){l=mid+1;}}return false;}}

3.Z字搜索

思路 

        因为每行都是递增的,每列也是递增的,所以我们可以选择从右上角开始遍历,遇到大于target的那就向左走,遇到小于target那就向下走。

具体代码
class Solution {public boolean searchMatrix(int[][] matrix, int target) {int n=matrix[0].length;int x=0;int y=n-1;while(x<=matrix.length-1 && y>=0){if(matrix[x][y]==target){return true;}if(matrix[x][y]>target){y--;}else{x++;}}return false;}}

相关文章:

  • Docker容器启动失败的常见原因分析
  • Git使用手册保姆级教程
  • GC1267F:单相全波风扇电机预驱动芯片解析
  • ubuntu20.04安装NVIDIA显卡驱动(驱动官网下载安装包,解决开机启动黑屏问题,终极保姆式方案教程)
  • 【Android笔记】记一次 CMake 构建 Filament Android 库的完整排错过程(安卓交叉编译、CMake、Ninja)
  • King3399(ubuntu文件系统)iic(i2c)功能测试
  • IoT/基于NB28-A/BC28-CNV通信模组使用AT指令连接华为云IoTDA平台(HCIP-IoT实验2)
  • Mac 版不能连接华为 GaussDB 吗?我看 Windows 版可以连接?
  • 华为云Flexus+DeepSeek征文|华为云Flexus云服务器X实例上部署Dify:打造高效的开源大语言模型应用开发平台
  • ubuntu国内镜像源手动配置
  • RK3566 Android12 HG24C02MM/TR EEPROM适配
  • docker镜像与dockerfile
  • SpringBoot + VUE3 +deepseek实现的简单的AI对话页面(无广告,不会员)
  • 用QT写一个车速表
  • 如何在 CentOS / RHEL 上修改 MySQL 默认数据目录 ?
  • 【从零开始学习QT】Qt 概述
  • mysql prepare statement
  • Flink 状态管理深度解析:类型与后端的全面探索
  • DrissionPage:重新定义Python网页自动化,让爬虫与浏览器控制合二为一
  • Spring AI Alibaba 发布企业级 MCP 分布式部署方案
  • 我国网站开发/网站推广具体内容
  • 舒城县建设局网站/上海好的网络推广公司
  • 企业网站 留言板/品牌推广活动有哪些
  • web作业制作网站源代码/百度站长平台有哪些功能
  • 宿迁做网站大公司/山东服务好的seo公司
  • 浅析b2c电子商务网站的建设/关键词指数查询工具