首页投稿(暂停使用,暂停投稿)程序员

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

2017-08-07  本文已影响0人  vaneL

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

二维数组(每行每列都递增排序):

1 2 8 9
2 4 9 12
4 7 10 13
6 8 11 15

思路:

//右上角是数组中最大的数字。
public static boolean Find(int target, int [][] array) {
        int row = 0;
        int column = array.length-1;
        while (column >= 0 && row < array[0].length) {
            if (array[row][column] > target) {
                column--;
            } else if (array[row][column] < target) {
                row++;
            } else {
                return true;
            }
        }
        return false;
    }
//左下角是数组中最小的数字。
public static boolean Find2(int target, int [][] array) {
        int row = array.length-1;
        int column = 0;
        while (row >= 0 && column < array[0].length) {
            if (array[row][column] > target) {
                row--;
            } else if (array[row][column] < target) {
                    column++;
                } else {
                    return true;
                }
            }
        return false;
    }
上一篇 下一篇

猜你喜欢

热点阅读