您的位置:首页 > Web前端

【剑指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);针对–>“{{}}”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐