标签:
public class Solution { //从数组左下角开始查找 public boolean Find2(int [][] array,int target) { int m = array.length-1; int n = array[0].length-1; int i=0; while(m>=0 && i<=n){ if(target < array[m][i]){ m--; }else if(target > array[m][i]){ i++; }else{ return true; } } return false; } // 从数组右上角开始查找 public boolean Find3(int[][] array, int target){ int n = array[0].length-1; int i = 0; while(n>=0 && i<array.length){ if(target > array[i][n]){ i++; }else if(target < array[i][n]){ n--; }else{ return true; } } return false; } // 遍历每一行,每一行中二分查找 public boolean Find(int[][] array, int target){ for(int i=0; i<array.length; i++){ int low=0; int high=array[i].length-1; while(low <= high){ int mid = (low + high)/2; if(target > array[i][mid]){ low = mid+1; }else if(target < array[i][mid]){ high = mid-1; }else{ return true; } } } return false; }
}
标签:
原文地址:http://www.cnblogs.com/hesier/p/5575340.html