public boolean Find(int target, int [][] array) {
//遍历二维数组 取出每一个一位数组后进行二分法查找
if(array == null || array.length == 0){
return false;
}
for(int i = 0;i< array.length ;i++){
int[] item = array[i];
if(has(item,target)){
return true;
}
}
return false;
}
public boolean has(int[] nums,int target){
if(nums == null || nums.length == 0){
return false;
}
int beginIndex = 0;
int endIndex = nums.length - 1;
while(beginIndex < endIndex){
int middleIndex = beginIndex + (endIndex - beginIndex) / 2;
int value = nums[middleIndex];
if(value == target){
return true;
}
if(value > target){
endIndex = middleIndex;
}
if(value < target){
beginIndex = middleIndex + 1;
}
}
if(beginIndex == endIndex && nums[beginIndex] == target){
return true;
}
return false;
}
}