首先需要明确:
什么是二维数组,二维数组和一维数组一样,一维数组存放元素,二维数组存放一维数组,实质也是存储数据的一个容器对象。
二维数组在定义上和一维数组一样,动态初始化和静态初始化。
二维数组的动态初始化方式
数据类型[][]数组名称 = new 数据类型[一维数组的个数] [ 每一个一维数组的元素个数 ]
明确数组下标开始位置:
arrs[0][0]=1;
arrs[0][1]=2;
arrs[1][0]=3;
arrs[1][1]=4;
arrs[2][0]=5;
arrs[2][1]=6;
赋值后数据:
[1,2]
[3,4]
[5,6]

1.暴力遍历:
public class Solution {
public boolean Find(int target, int [][] array) {
for(int i=0;i<array.length;i++){ ----i 控制数组个数,理解为行数 下标0开始
for(int j=0;j<array[0].length;j++){ —j 控制数组内元素个数 理解为列数,(题目已给出灭每个一维数组的长度相同)
if(array[i][j] == target){
return true;
}
}
}
return false;
}
}

2.左下角开始寻找 思路 矩阵是有序的,从左下角来看,向上数字递减,向右数字递增,因此从左下角开始查找,当要查找数字比左下角数字大时。右移。要查找数字比左下角数字小时,上移
public class Solution{
public boolen Find(int target,int[][]array){
int i=array.length-1;
int j=0;
while(i>=0;&&j<array[0].length){
if(array[i][j]==target){
return true;
}
elseif(array[i][j]>target){
i–;
}else{
j++;
}
]
return false;
}
}

写法2
class Solution {
public:
bool Find(vector<vector > array,int target) {
int m,n,x,y;
m = array.size();//行数
n = array[0].size();//列数
x=m-1;y=0;//坐标定在左下角
while(x>=0 && y<=n-1){
if(target<array[x][y]){
x–;//遇小上移
}
else if(target>array[x][y]){
y++;//遇大右移
}
else {
return true;
}
}
return false;
}
};

3.二分法查找
public class Solution {
public boolean Find(int target, int [][] array) {
for(int i = 0; i < array.length; i++){
int low = 0;
int high = array[0].length - 1;
while(low <= high){
mid = (low + high)/2;
if(target > array[i][mid]){
low = mid + 1;
}else if(target < array[i][mid]){
high = mid - 1;
}else{
return true;
}
}
}
return false;
}
}

剑指算法:二维数组的查找相关推荐

  1. 剑指Offer——二维数组的查找(C语言)

    题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序. 请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 数据范围 二维数组中元素 ...

  2. 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找

    算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...

  3. python 二维数组长度_剑指offer二维数组中的查找【Java+Python】

    点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...

  4. 剑指Offer 二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路法一: * 矩阵是 ...

  5. 剑指offer - 二维数组中的查找

    题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. /* 思路 * 矩阵是 ...

  6. 【二分法】剑指offer:二维数组中的查找

    对于二维数组中每一个一维数组,用二分查找,判断能否找到该数 leetcode专题笔记:二分法查找(1)(附leetcode题)_m0_52043808的博客-CSDN博客 代码: class Solu ...

  7. 剑指0ffer04.二维数组中的查找

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

  8. 剑指Offer04. 二维数组中的查找

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

  9. 剑指offer之二维数组中查找

    1 问题 二维数组中查找: 在一个二维数组钟,每一行都按照从左到右递增得顺序排列,每一列 都按照从上往下得递增排列,请完成一个函数,输入这样得一个二维数组和一个 整数,判断数组是否含有该整数 列如: ...

  10. 数据结构与算法--数组:二维数组中查找

    数组 数组最简单的是数据结构,占据一整块连续的内存并按照顺序存储数据,创建数组时候,我们需要首先指定数组的容量大小,然后根据大小分配内存.即使我们只在数组中存储一个元素,亚需要为所有数据预先分配内存, ...

最新文章

  1. 安装Subversion1.82(SVN)
  2. UVa661 Blowing Fuses
  3. 每日程序C语言36-数组中前面各数顺序向后移动m个位置
  4. 微信小程序点击按钮实现手机振动功能
  5. linux内核没有iobuf,LINUX2.6.26.6内核下双口RAM的驱动函数测试成功!
  6. 11条javascript知识
  7. Android热修复实现及原理
  8. centos7从有线切换到无线_不需要软件,如何简单实现内外网自由切换?
  9. javascript 高级程序设计 (第四版) 第二章 下
  10. 【BERT-多标签文本分类实战】之四——数据集预处理
  11. excel格式和csv格式的区别(关键差异)
  12. 线性独立成分分析(ICA)与鸡尾酒会问题
  13. ArcGIS Pro 学习路径
  14. 研究杜比视界和HDR近两个月后的各种经验和故事
  15. Win7系统安装Pycharm专业版
  16. 麻省理工学院计算机研究生读几年,2020年麻省理工学院一年制硕士含金量
  17. SpringCloud版本Hoxton SR5 --- 第三讲:Ribbon 、Ribbon与Feign配合使用
  18. 2017年乌镇互联网大会部分要点实地记录
  19. 一元多项式的加法详解
  20. 3G入门教程--通讯基础

热门文章

  1. 3D 可视化入门:渲染管线原理与实践
  2. echarts常见图形-折线图(三)
  3. CRM,ERP,SCM,MRPII....
  4. 组合模式详解附有代码案例分析(包含透明组合模式、安全组合模式的代码示例)
  5. 51nod 1215 数组的宽度
  6. html 有些图片被uc浏览器屏蔽的问题
  7. python 重写抽象类编译错误_C++面向对象:C++ 接口(抽象类)
  8. java编写的获取抖音评论uid,小软件
  9. Navicat客户端历史版本下载地址
  10. UR3e+robotiq+抓取仿真实验