由于二维数组是有序的,因此可以从左下角元素m是一行里面最小,一列里面最大的
若target>m ,则只能从该行从左往右,即列值++
若target<m,则只能从上一行遍历,则行--
target = m, 则返回true
m初始值应该为array[array.length-1][0]
public class Solution { public boolean Find(int target, int [][] array) { int row = array.length-1; int col = 0; while(row>=0 && col<array[0].length){ if (array[row][col]>target){ row--; } else if (array[row][col]<target){ col++; } else return true; } return false; } }