import java.util.*; public class Solution { public boolean Find (int target, int[][] array) { // //直接遍历判断 // for(int i=0;i<array.length;i++){ // for(int j=0;j<array[0].length;j++){ // if(target==array[i][j]){ // return true; // } // } // } // return false; //观察可以知道左上右下是最小的和最大的;而可以从左下角出发判断 //如果小于那么就向上走,如果大于就向右走,走到边界没有就返回false int l = array.length; int i=l-1; int j =0; while(i>=0&&j<array[0].length){ if(target==array[i][j]){ return true; }else if(target<array[i][j]){ i--; }else{ j++; } } return false; } }