【剑指offer】二分查找二维数组

来源:互联网 发布:韩国游戏源码交易平台 编辑:程序博客网 时间:2024/06/07 23:15

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

思路:由于此二维数组是从左到右和从下到上递增的,因此查找起始坐标应该从第一列最后一排开始查找,此位置的数比目标数大,则坐标向上移,反之向右移,直到找到目标数或到达边界。

代码

public class Solution {    public boolean Find(int target, int [][] array) {        int m = array.length;        int n = array[0].length;        int col = 0;//查找的起始列//        int row = m - 1;//查找的起始行//        while(col < n && row >= 0) {            if (array[row][col] > target)                row--;            else if(array[row][col] < target)                col++;            else                return true;        }        return false;    }}
原创粉丝点击