《剑指offer》二维数组中的查找
2017-06-25 22:12
267 查看
解法1:属于比较传统的不转弯的解法,时间复杂度以及空间复杂度比较大
解法2:从左下角开始搜
public static boolean Find(int target, int [][] array) {
int length=array.length-1;
int i=0;
while(length>=0&&(i<array[0].length)){ //从左下角开始搜索
if(array[length][i]<target){
i++;
}else if(array[length][i]>target){
length--;
}else{
return true; //就是该值了
}
}
return false;
}
解法3:和解法1类似,因为从左到右是有序的,所以每一行用二分查找
public class Solution { public boolean Find(int target, int [][] array) { if(array.length==0){ return false; } for(int i=0;i<array.length;i++){ for(int j=0;j<array[i].length;j++){ if(array[i][j]==target){ return true; } } } return false; } }
解法2:从左下角开始搜
public static boolean Find(int target, int [][] array) {
int length=array.length-1;
int i=0;
while(length>=0&&(i<array[0].length)){ //从左下角开始搜索
if(array[length][i]<target){
i++;
}else if(array[length][i]>target){
length--;
}else{
return true; //就是该值了
}
}
return false;
}
解法3:和解法1类似,因为从左到右是有序的,所以每一行用二分查找
相关文章推荐
- 《剑指offer》编程题java实现(一):二维数组的查找
- 牛客《剑指Offer》 二维数组中的查找
- 《剑指offer》:行列有序的二维数组查找()
- 剑指offer——1.二维数组中的查找
- 剑指offer(纪念版) 面试题3:二维数组中的查找
- 剑指Offer——二维数组中的查找——C++
- 剑指offer-面试3:二维数组中的查找(数组和指针)
- 剑指offer面试题:二维数组中的查找,C语言实现
- 剑指offer编程题——03 二维数组中的查找
- 剑指offer-面试题3.二维数组中的查找
- 剑指offer系列源码--二维数组中的查找
- C++笔试题(剑指offer 面试题3 二维数组中查找数)
- 牛课网刷题--剑指offer(二维数组中的查找)
- 剑指offer 面试题3:二维数组中的查找
- 剑指Offer面试题目:有序二维数组的查找
- 剑指offer:面试题03---二维数组的查找
- 剑指offer面试题3-二维数组中的查找
- 《剑指offer》面试题3 二维数组中的查找(杨氏矩阵)
- 剑指offer 面试题3:二维数组中查找
- 《剑指offer》刷题笔记(数组):二维数组中的查找