美文网首页
剑指offer Q4 二维数组中的查找

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

作者: 是一动不动的friend | 来源:发表于2017-12-21 16:12 被阅读19次
    题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。

    判断该二维数组中是否有元素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++;
            }
        }
    

    相关文章

      网友评论

          本文标题:剑指offer Q4 二维数组中的查找

          本文链接:https://www.haomeiwen.com/subject/mtdkixtx.html