二维数组中的查找 java
题目描述
在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
代码1:
public class Solution {
public boolean Find(int target, int [][] array) {
boolean flag = false;
if(array.length != 0 && array[0].length != 0){
for(int i = 0; i < array.length; i++){
if(array[i][array[0].length - 1] < target){
continue;
}else if(array[i][array[0].length - 1] == target){
if(array[i][array[0].length - 1] == target){
flag = true;
break;
}
}else{
for(int j = 0; j < array[0].length - 1; j++){
if(array[i][j] == target){
flag = true;
}
}
}
}
}
return flag;
}
}
代码2:
public class Solution {
public boolean Find(int target, int [][] array) {
boolean found = false;
int lie = array[0].length;
int hang = array.length;
int column = lie - 1;
int row = 0;
while(row < hang && column >= 0){
int value = array[row][column];
if(target > value){
row++;
}else if(value > target){
column--;
}else{
found = true;
break;
}
}
return found;
}
}