剑指offer Q4 二维数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

判断该二维数组中是否有元素7。

思路:比如有二维数组a[3][3]为1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15

选取左下角的元素a[3][0]是6比7小,则排除第一列,令a[3][0]列加1得
(1) 2 8 9
(2) 4 9 12
(4) 7 10 13
(6) [8] 11 15
a[3][1]为8大于7,则减去一行,a[2][1]为7则返回true。

代码:

/**
 * Created by ryder on 2017/6/12.
 * 二维数组,从左到右递增,从上到下递增,输入一个整数,判断数组中是否含有
 */
public class P44_FindInPartiallySortedMatrix {
    public static boolean findInPartiallySortedMatrix(int[][] data,int target){
        if(data==null ||data.length==0 || data[0].length==0)
            return false;
        int rowMax = data.length-1,colMax = data[0].length-1;
        int rowCur = data.length-1,colCur = 0;
        while(true){
            if(rowCur<0 | rowCur>rowMax | colCur<0 | colCur>colMax)
                return false;
            if(data[rowCur][colCur]==target)
                return true;
            else if(data[rowCur][colCur]>target)
                    rowCur--;
            else
                colCur++;
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 4,007评论 2 13
  • 【1】7,9,-1,5,( ) A、4;B、2;C、-1;D、-3 分析:选D,7+9=16;9+(-1)=8;(...
    Alex_bingo阅读 19,117评论 1 19
  • 1.题目 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数...
    KaelQ阅读 543评论 1 5
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,523评论 0 17
  • 每次看着别人跳舞觉得的太酷了,于是也报了个舞蹈班,心想一定要好好坚持,但是呢,一个学期下来,一只舞也没学会。 每次...
    严谨言阅读 184评论 0 0