《剑指offer》数组——二维数组中查找

来源:互联网 发布:c语言编译环境 编辑:程序博客网 时间:2024/05/18 00:13

题目:

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

思路:

利用二维数组由上到下,由左到右递增的规律,
那么选取右上角或者左下角的元素 arr[row][col] 与 target 进行比较
这里就选右上角元素,当 target < arr[0][col],左移,col– ;当 target > arr[0][col], 下移,row++。

public  boolean FindNumInArray(int[][] arr, int target){    int row = 0;    //行    int col = arr[0].length - 1;    //列    while (row <= col && col >= 0){        if (target == arr[row][col]){            return true;        }else if (target < arr[row][col]){            col--;        }else{            row++;        }    }    return false;}

代码详情(含测试):FindNumInArray.java

0 0
原创粉丝点击