二维数组中的查找

来源:互联网 发布:搜索不到淘宝店铺 编辑:程序博客网 时间:2024/05/16 19:27

题目描述

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

解决思路

二维数组时有序的,从右上角看,向左数字是依次递减的,向下数字是依次递增的。从右上角开始查找,如果要查找的数字刚好等于右上角的数字,则返回true,否则再进行判断,如果要查找的数字比右上角的数字大,就向下一行,否则向前一列。

代码

public class Solution {    public boolean Find(int target, int [][] array) {        int row=array.length;        int col=array[0].length;        int i=0,j=col-1;   //从右上角开始        while(i<row && j>=0){            if(target==array[i][j]){                return true;            }else if(target>array[i][j]){                i++;   //向下一行            }else{                j--;   //向前一列            }        }        return false;    }}


原创粉丝点击