import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param target int整型 * @param array int整型二维数组 * @return bool布尔型 */ public boolean Find (int target, int[][] array) { // write code here // 解题思路:由题可知从左到右升序,从上到下升序 // 因此从左下角开始比较,比它大的元素肯定在它的右边 // 比它小的元素在它的上面,依次比较,只到出界 if (array == null || array.length == 0 || array[0].length == 0) { return false; } int h = array.length; int l = array[0].length; int ch = array.length - 1; int cl = 0; while (ch >= 0 && cl < l) { int val = array[ch][cl]; if (val == target) { return true; } if (val > target) { ch--; } if (val < target) { cl++; } } return false; } }