题目描述

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

我的解题思路: 因为每一行都按照从左到右递增的顺序排序,所以我利用二分查找方法解决

package com.jianzhioffer;public class FindArray {public static void main(String[] args){int [][] array = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}};System.out.println(Find(7, array));}public static boolean Find(int target, int [][] array) {int l = array.length;int r = array[0].length;int i=0;for(i=0;i<l;i++){int lf = 0;int rg = r -1;while(lf<=rg){int m = (lf + rg)/2;if(array[i][m] == target){return true;}if(array[i][m] > target){rg = m-1;}else{lf = m+1;}}    }return false;}
}

别人的思路:

二维数组是有序的,从右上角来看,向左数字递减,向下数字递增。
因此从右上角开始查找,

  • 当要查找数字比右上角数字大时,下移;
  • 当要查找数字比右上角数字小时,左移;
  • 如果出了边界,则说明二维数组中不存在该整数。
public class Solution {public boolean Find(int target, int [][] array) {if(array.length==0 || array[0].length==0)return false;int m = array[0].length-1;int n = 0;int temp = array[n][m];while(target != temp){if(m>0 && n<array.length-1){if(target>temp){n = n + 1;}else if(target<temp){m = m - 1;}temp = array[n][m];}else{return false;}}return true;}
}

剑指offer一:二维数组中的查找相关推荐

  1. 剑指offer:二维数组中的查找

    目录 题目 解题思路 具体代码 题目 题目链接 剑指offer:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺 ...

  2. 【LeetCode】剑指 Offer 04. 二维数组中的查找

    [LeetCode]剑指 Offer 04. 二维数组中的查找 文章目录 [LeetCode]剑指 Offer 04. 二维数组中的查找 package offer;public class Solu ...

  3. 利用指针数组计算2个3行4列矩阵的和_[剑指 Offer] 04. 二维数组中的查找

    难度:简单 题目链接:剑指 Offer 04. 二维数组中的查找 题目描述: 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数, ...

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

    剑指 Offer 04. 二维数组中的查找 在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个 ...

  5. [剑指Offer]5.二维数组中的查找

    题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...

  6. 剑指Offer #01 二维数组中的查找(Java描述)

    题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...

  7. 《剑指Offer》——二维数组中的查找(JZ1)C++

    文章目录 前言 题目:JZ1 二维数组中的查找 一.暴力解法 二.优化解法 总结 前言 题目:JZ1 二维数组中的查找 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序, ...

  8. 剑指offer:二维数组中的查找python实现

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

  9. Leetcode 剑指 Offer 04. 二维数组中的查找 (每日一题 20210727)

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

最新文章

  1. Self-Attention 加速方法一览:ISSA、CCNet、CGNL、Linformer
  2. 【原】开源——基于文件驱动的站点开发
  3. python使用matplotlib可视化不同年份、不同项目的均值(mean)对比条形图(bar plot comparision of mean with different years)
  4. Android帧缓冲区(Frame Buffer)硬件抽象层(HAL)模块Gralloc的实现原理分析(4)...
  5. 别再傻傻地用这些软件G转P了,修复后不稳定的真相在这里
  6. 没有任何基础的可以学python吗-没有任何基础的人,该如何学习Python?「附具体步骤」...
  7. 网页全文搜索字符和全局搜索文件名【Edge和谷歌浏览器均适用】
  8. System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
  9. ThreadLocal如何实现?
  10. http协议与服务器通信,iPhone应用用HTTP协议和服务器通信
  11. 递归函数 二分查找法 的一些用法
  12. 41. 使用内容发布网络(2)
  13. 数据结构和算法常见面试题大全
  14. vue 地址区域选择组件
  15. Word 转 PDF 后目录链接无效的解决办法
  16. 【转】本科生如何发表论文
  17. 图片上传实时预览效果
  18. 为什么说小米会是品牌2020年最重要的增长源?
  19. 多元伯努利分布 multivariate bernoulli distribution
  20. Excel给证件照换底色,红、蓝、白底任你换,看完涨知识了

热门文章

  1. centos7.3安装MongoDB
  2. “全能”选手—Django 1.10文档中文版Part1
  3. linux下递归修改目录/文件权限命令
  4. jquery 动态生成html后click事件不触发原因
  5. 重采样算法实践 --- (一)
  6. 提交请求输出XML文件的时候出错.解决方法
  7. “当前上下文中不存在名称”解决
  8. moveit!功能包安装问题
  9. script 标签中async 属性和defer 属性作用以及区别?
  10. Python开发【第十二篇】:DOM