剑指Offer
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路:
如上图:一共4行4列,假如要查找的数是5。
- 先从右上角开始 9 大于 5,第 4 列可以去掉
- 第 3 列第一个数 4 小于 5,第 1 行可以去掉
- 第 3 列第二个数 6 大于 5,第 3 列可以去掉
- 第 2 列第二个数 4 小于 5,第 2 行可以去掉
第 2 列第三个数 5 等于 5 找到了。
public class Solution { public boolean Find(int target, int [][] array) { if(array == null){ return false; } int row=array.length; int column=array[0].length; int i=0,j=column-1; while(i
=0){ if(array[i][j]>target){ j--; }else if(array[i][j]