剑指offer第二版-4.二维数组中的查找

本系列导航:剑指offer(第二版)java实现导航帖

面试题4:二维数组中的查找

题目要求:
一个二维数组中,每一行从左到右递增,每一列从上到下递增。输入一个整数,判断数组中是否含有该整数

package chapter2;

/**
 * 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++;
        }
    }
    public static void main(String[] args){
        int[][] data = {{1,2,8,9},
                        {2,4,9,12},
                        {4,7,10,13},
                        {6,8,11,15}};
        System.out.println(findInPartiallySortedMatrix(data, 10));
        System.out.println(findInPartiallySortedMatrix(data, 5));
    }
}

运行结果

true
false

你可能感兴趣的:(剑指offer第二版-4.二维数组中的查找)