首页 > 代码库 > 【剑指offer】二维数组中的查找
【剑指offer】二维数组中的查找
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
注意点:要注意特殊情况的存在,比如数组为null,数组的长度为0等情况。
1 public class Solution { 2 public boolean Find(int target, int [][] array) { 3 boolean result = false; 4 if(array == null || array.length == 0) return false; 5 for(int i = 0; i < array.length; i++){ 6 if(array[i] == null || array[i].length == 0) return false; //防止ArrayIndexOutOfBoundsException 7 if(target >= array[i][0]){ 8 result = BinaraySearch(target,array[i],0,array[i].length); 9 } 10 if(result == true) return result; 11 } 12 return result; 13 } 14 public boolean BinaraySearch(int target, int[] array,int lo, int hi){ 15 if(lo >= hi) return false; 16 int mid = (lo + hi) / 2; 17 if(array[mid] == target) return true; 18 else if(array[mid] > target) return BinaraySearch(target, array, lo, mid); 19 else return BinaraySearch(target, array, mid + 1, hi); 20 } 21 }
【剑指offer】二维数组中的查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。