剑指offer1:二维数组中的查找
题目描述:
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
1、直接使用查找的方式,当数组中的数字刚好等于target则返回true,否则返回false。可以考虑使用二分查找降低复杂度
2、可以判断,选择左下角的数字或者右上角的数字进行比较可以使问题变简单。
1 //1、二分查找 2 public class Solution { 3 public boolean Find(int target, int [][] array) { 4 for(int i = 0; i < array.length;i++){ 5 int low = 0,high = array[i].length-1; 6 while(low<=high){ 7 int mid = (low+high)/2; 8 if(target>array[i][mid]){ 9 low = mid + 1; 10 } 11 else if(target<array[i][mid]){ 12 high = mid -1; 13 } 14 else 15 {return true;} 16 } 17 } 18 return false; 19 } 20 }
1 2、比较左下角或右上角的数 2 public class Erweishuzuchazhao { 3 public boolean Find(int target, int [][] array) { 4 int x = array.length-1; int y = 0; 5 while(x>=0&&y<array[0].length){ 6 if(target==array[x][y]) return true; 7 else if(target<array[x][y]){ 8 x--; 9 }else { 10 y++; 11 } 12 } 13 return false; 14 15 } 16 public static void main(String[] args) { 17 // TODO Auto-generated method stub 18 Erweishuzuchazhao erweishuzuchazhao = new Erweishuzuchazhao(); 19 int target = 7; 20 int[][] array = {{1,2,8,9},{2,4,9,12},{4,7,10,13},{6,8,11,15}}; 21 if(erweishuzuchazhao.Find(target, array)==true) System.out.println(true); 22 } 23 24 }
转载于:https://www.cnblogs.com/zlz099/p/8527193.html
剑指offer1:二维数组中的查找相关推荐
- python 二维数组长度_剑指offer二维数组中的查找【Java+Python】
点击上方"蓝字",关注了解更多 二维数组中的查找 1. 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序 ...
- 隔一段时间查找一次 golang_剑指 offer-04 二维数组中的查找
算法名称:二维数组中的查找 题目内容:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整 ...
- 剑指0ffer04.二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 示例: 现 ...
- 剑指Offer 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路法一: * 矩阵是 ...
- 剑指Offer04. 二维数组中的查找
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 相当于二叉 ...
- 剑指offer - 二维数组中的查找
题目描述 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. /* 思路 * 矩阵是 ...
- 【二分法】剑指offer:二维数组中的查找
对于二维数组中每一个一维数组,用二分查找,判断能否找到该数 leetcode专题笔记:二分法查找(1)(附leetcode题)_m0_52043808的博客-CSDN博客 代码: class Solu ...
- [剑指Offer]5.二维数组中的查找
题目 在一个二维数组中,每一行都依照从左到右递增的顺序排序,每一列都依照从上到下递增的顺序排序.请完毕一个函数,输入这种一个二维数组和一个整数.推断数组中是否含有该整数. 思路 [算法系列之三十三]杨 ...
- 算法题001 剑指Offer 面试题三:二维数组中的查找
剑指Offer题目1:二维数组中的查找 题目描述: http://ac.jobdu.com/problem.php?cid=1039&pid=0 在一个二维数组中,每一行都按照从左到右递增的顺 ...
- 剑指Offer #01 二维数组中的查找(Java描述)
题目来源:牛客网-剑指Offer专题 题目地址:二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一 ...
最新文章
- NET 5是.NET的未来:每个.Net开发人员必须知道什么
- Apache2.4x版本的403问题
- 如何通过Restful API的方式读取SAP Commerce Cloud的Product图片
- mysql内表和外表_Hive内表和外表的区别
- 广度优先遍历类似于二叉树的_二叉树的各种遍历方法的简单解释
- CVPR 2020|超越H.265,中科大使用多帧数据改进视频压缩新方法
- python里的英文歌叫什么_一首英文歌名最后是onshould
- zookeeper学习02 使用
- 基于yolo5工地安全帽和禁入危险区域识别系统,附数据集
- 第一个servlet
- 蓝宝石会升级bios吗_蓝宝石主板bios设置教程
- Win7 U盘安装Ubuntu16.04 双系统详细教程
- C#Socket客户端
- 新一代天气雷达信息共享平台
- ps关于去除脸上的痘痘问题和美白问题
- Python模块——标准库\开源模块\自定义模块
- cocos2d-js的(layer)生命周期,ctor,onEnter,onExit的使用
- Excel VBA 之 UBound
- 结构光、双目、ToF——三种3D技术对比
- 我是一个*** (九)
热门文章
- java1.7数据库access_Java 8读取Access数据库报错的问题——用32位Java 7
- 通过自定义Module实现URl重写和登陆验证
- 《构建高可用Linux服务器》答读者疑问
- 图解XP局域网共享设置教程汇总A
- 短时间让大家对C++ STL有所学习
- [原创]中秋随笔 祝大家中秋快乐
- C11头文件threads.h声明了创建和管理线程,信号,条件变量的函数
- SRP6针对于网游登录服的应用
- MySQL添加唯一约束和联合唯一约束(建表后添加)
- linux中查看mysql版本的方法汇总