【剑指offer】【二维数组中的查找】【有序二维数组整数查找】【判断二维数组是否为空方法】
2017-07-03 15:59
302 查看
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。代码1:
public boolean Find(int target, int [][] array) { boolean findResult = false; if(!(array==null||array.length==0||(array.length==1&&array[0].length==0))){ for(int i = 0; i < array.length; i++){ if(array[i][0] <= target){ for(int j = 0; j < array[0].length; j++){ if(array[i][j]==target){ findResult = true; } } } } } return findResult; }
代码2(优化后):
/** * * 从左下角开始查找,当要查找数字比左下角数字大时,右移 * 要查找数字比左下角数字小时,上移 */ public boolean Find(int target, int [][] array) { boolean findResult = false; int length = array.length-1; int i = 0; while((length>=0)&&(i< 4000 array[0].length)){ if(array[length][i]>target){length--;} else if(array[length][i]<target){i++;} else return true; } return false; }
归纳总结:
二维数组判断非空的三种情况:1. array==null;
2. array.length==0;
3. array.length==1&&array[0].length==0);针对–>“{{}}”
相关文章推荐
- 查找某个数是否在二维数组中(剑指offer第一题)
- 剑指offer------003(二维数组中查找整数)
- 剑指offer_快速查找递增二维数组中是否存在目标
- 剑指offer之有序二维数组查找
- 程序员面试题目总结--数组(五)【数组的后面m个数移动为前面m个数、列的前n项数据、判断整数x是否可以表示成n个连续正整数的和、数组中出现奇数次的元素、二维数组中的查找】
- 剑指offer | 有序二维数组查找
- 【剑指offer】有序二维数组中的查找
- 剑指offer-有序二维数组中的查找
- 剑指offer--判断规则二维数组是否存在一个指定数
- 一个有序的二维数组,自上而下,自左至右都是升序,判断输入的整数是否在数组中
- 剑指offer-01-判断数组中是否含有某整数
- 二维数组中的查找-在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
- 判断两个整数相加是否溢出的方法
- 【剑指offer】二维数组中的查找
- 判断两个整数相加是否溢出的方法
- 【剑指offer】二分查找二维数组
- 剑指Offer 1367 判断整数序列是不是二元查找树的后序遍历结果
- [剑指Offer]二维数组中的查找
- 剑指 offer set 17 判断一棵树是否是平衡树
- 【剑指offer】二维数组中查找_03