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

剑指 Offer 04. 二维数组中的查找解题思路

文章目录

  • 标题
  • 解题思路
    • 优化

标题

在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

示例:

现有矩阵 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。

给定 target = 20,返回 false。

限制:

0 <= n <= 1000

0 <= m <= 1000

解题思路

在这里插入图片描述

观察矩阵特点,发现可以在第一行中找到最后一个小于等于该数的位置,在该列中查找,同理找到第一列中最后一个小于等于该数的位置,在该行查找、如果都不存在,那么在小于x,y范围内查找。

public bool FindNumberIn2DArray(int[][] matrix, int target){if(matrix.GetLength(0) == 0|| target == null || matrix[0].GetLength(0) == 0)return false;int x = 0 , y = 0;for(int i = 0 ; i < matrix[0].GetLength(0); i++)//1维长度{if(matrix[0][i] <= target){x = i;}}for(int i = 0 ; i < matrix.GetLength(0); i++)//0维长度{if(matrix[i][x] == target)return true;}for(int i = 0 ; i < matrix.GetLength(0); i++)//0维长度{if(matrix[i][0] <= target){y = i;}}for(int i = 0 ; i < matrix[0].GetLength(0); i++)//1维长度{if(matrix[y][i] == target)return true;}for(int i = 0 ; i <= y; i++)//在x,y内找{for(int j = 0; j <= x ; j++){if(matrix[i][j] == target)return true;}}return false;}

在这里插入图片描述

优化

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

相关文章:

  • 冯诺依曼体系结构详解
  • ISO证书“带标”与“不带标”的区别是什么?
  • RocketMQ 领域模型概述
  • 黄河千年清一回与人类健康
  • Android java层hook------xposed框架的使用
  • css奇淫巧计
  • Web服务器实现|基于阻塞队列线程池的Http服务器|线程控制|Http协议
  • 【C++】运算符重载(日期类的实现)
  • 【Linux】线程分离 | 线程库 | C++调用线程 | 线程局部存储
  • c++ ffmpeg 浅谈YUV444、YUV422、YUV420(2)
  • Redis在Windows下安装配置教程
  • 数据库服务器
  • VS输出路径和生成事件
  • 从 WebKit 看浏览器内核架构
  • 使用原生的 JavaScript,不依赖于任何特定的库与 ROSBridge进行通信
  • MATLAB第十章_图像处理算法
  • RobotFramework接口测试方案
  • chatgpt赋能python:Python中日期转换:从字符串到日期对象
  • k8s 1.27新特性in-place使用方法:避坑指南(官方文档有坑,已提issue)
  • 网络传输(传输介质、通信方式、交换方式)
  • 【Unity】Time.deltaTime有什么用?看完你就明白
  • vue实现用户动态权限登录
  • ONNX模型修改为自定义节点
  • 内存对齐原则
  • Java SPI 一 之SPI(Service Provider Interface)进阶 AutoService
  • C++ list类成员函数介绍
  • 【服务器】本地搭建PHP简单Imagewheel私人云图床
  • 第四十二回:DateRangePickerDialog Widget
  • 【C++系列P3】‘类与对象‘-三部曲——[基础知识](1/3)
  • Android UEvent事件分析之Kernel上报电量