美文网首页
数据结构与算法之二维数组中的查找问题

数据结构与算法之二维数组中的查找问题

作者: cleverLee | 来源:发表于2018-02-22 18:33 被阅读0次

    题目描述:

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

    算法思路:

    首先我们可以先用一个实际的例子来引导我们的思考,比如有这样一个数组,第一行为{1,5,9,13},第二行为{2,6,10,14,},第三行为{3,7,11,15},第四行为{4,8,12,16},这个时候我们就能很直观的看见这个二维数组的规律,我们不妨这样思考:既然是查找一个二维数组是否包含某个整数,而这个二维数组又是有规律的,我们就可以用对照法,选择一个有代表性的位置作为参照物,比如左下角或者右上角。我暂且选择以右上角作为示范,如果目标数大于右上角,则行增加。如果目标数小于右上角,则列减少。否者就是找到目标数了。编写代码的过程注意中要注意控制好边界条件。

    代码实现:

    这里我以java语言作为示范,其他语言的使用者可以参照我的算法思路进行相应的代码实现 

    public class Solution {

        public boolean Find(int target, int [][] array) {

        int i=array.length-1;

        int j=0;

        while((i>=0)&&(j

        if(array[i][j]>target)

        {   

            i--;

        }

        else if(array[i][j]

        {

            j++ ;

        }   

        else{

          return true; 

        }

        }   

        return false;

        }

    }

    相关文章

      网友评论

          本文标题:数据结构与算法之二维数组中的查找问题

          本文链接:https://www.haomeiwen.com/subject/eusztftx.html