二维数组查找指定元素

已知二维数组,横向竖向都递增有序。查找某数,是不是在数组里。
题目思路见:剑指offer的第三题

    public static void main(String[] args) {
        int[][] array = {{1, 2, 8, 9},
                {2, 4, 9, 12},
                {4, 7, 10, 13},
                {6, 8, 11, 15}};
        System.out.println(findValue(10,array));
    }

    public static boolean findValue(int target,int[][] array){
        int rows = array.length;//行数
        int columns = array[0].length;//列数

        int row = 0;//循环起始行
        int column = columns -1;//循环起始列

        //特殊情况下处理
        if (array == null || array.length<1 || array[0].length<1){
            return false;
        }

        //正常情况
        while (row >=0 && row<=rows && column >=0 && column< columns){
            if(array[row][column] == target){
                return true;
            }else if (array[row][column] > target){
                column--;
            }else if (array[row][column] < target){
                row++;
            }
        }
        return false;
    }
  1. 在纸上手写代码,要滤清思路再下手,切忌上来就写。
  2. 先写测试用例,比这测试用例思考思路
  3. 主流程的循环控制,结束条件选择
  4. 程序的鲁棒性,特除情况,空值越界的处理

你可能感兴趣的:(二维数组查找指定元素)