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

news/2024/10/17 13:34:46/

文章目录

  • 标题
  • 解题思路
    • 优化

标题

在一个 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.ppmy.cn/news/107339.html

相关文章

【pytest】tep环境变量、fixtures、用例三者之间的关系

tep是一款测试工具&#xff0c;在pytest测试框架基础上集成了第三方包&#xff0c;提供项目脚手架&#xff0c;帮助以写Python代码方式&#xff0c;快速实现自动化项目落地。 在tep项目中&#xff0c;自动化测试用例都是放到tests目录下的&#xff0c;每个.py文件相互独立&…

Java 多线程共享数据引发的问题

一、多线程并发情况下&#xff0c;线程不安全​​ 1、使用多线程实现银行取钱​​ package theads;/*** ClassName: TestBank* Description: TODO* Author: HLX* date: 2023/5/29 14:53* Version: V1.0*//*** 线程不安全&#xff1a; 取钱* <p>* 逻辑&#xff1a;* 连取…

洗地机充电底座语音芯片选型?NV040DS语音芯片

一、洗地机语音提示功能的价值 洗地机充电底座加入语音提示功能&#xff0c;主要是为了提高洗地机的智能化程度和使用便利性&#xff01; 1. 提高使用效率&#xff1a;底座语音提示充电状态可以使用户更方便地掌握底座电量和洗地机的使用情况&#xff0c;从而更快捷地对底座进…

算法---边界着色

题目 给你一个大小为 m x n 的整数矩阵 grid &#xff0c;表示一个网格。另给你三个整数 row、col 和 color 。网格中的每个值表示该位置处的网格块的颜色。 两个网格块属于同一 连通分量 需满足下述全部条件&#xff1a; 两个网格块颜色相同 在上、下、左、右任意一个方向上…

SSH配置密钥免密码登录

1.生成key 在本地主机输入以下命令 [rootlocalhost ~]# ssh-keygen 一直回车 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory /root/.ssh. Enter passphrase (empty for no passphrase): Enter s…

信创办公–基于WPS的EXCEL最佳实践系列 (规整数据摆放)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;规整数据摆放&#xff09; 目录 应用背景操作步骤1、数据排序2、例如&#xff1a;职务按照 经理-主任-职员 排序3、排列第二种方法4、实操案例5、案例练习一方法一&#xff1a;通过公式函数增加辅助列方法二&#xff1a;用辅…

变电站与智能变电站

变电站 概念&#xff1a;变电站是指电力系统中对电业和电流进行变换&#xff0c;接受电能和分配电能的场所。在发电厂内的变电站是升压变压站&#xff0c;其作用是将发电机发出的电能升压后馈送到高压电网中。 分类 一类变电站。是指交流特高压站&#xff0c;核电、大型能源…

LeetCode——可被三整除的偶数的平均值

#全国科技者工作日—为创新和未来而努力# 目录 1、题目 2、题目解读 3、代码 1、题目 2455. 可被三整除的偶数的平均值 - 力扣&#xff08;Leetcode&#xff09; 给你一个由正整数组成的整数数组 nums &#xff0c;返回其中可被 3 整除的所有偶数的平均值。 注意&#xff…