题解 | #二维数组中的查找#

二维数组中的查找

http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

{
    public boolean Find(int target, int [][] array) 
    {
        int R_h =array.length; //R_h 这个数组有几行
        int R_l =array[0].length;//R_h这个数组有几列
        boolean result = false;
        //开始扫描 从行开始扫描,固定一行每一行的每一个元素扫描一遍;
        for(int hang = 0;hang<R_h;hang++ )
        {
                for(int lie = 0; lie<R_l;lie++)
                {
                //若有符合条件的,直接返回true;
                    if(array[hang][lie]==target)
                        result = true;
                        //若有比大于target元素的array[hang][lie],根据题目所示的数组中元素的规律,
                        //说明目标值target只可能在该元素的前一列array[hang][lie-1]
                        else if(array[hang][lie]>target)
                        {
                        //对该元素array[hang][lie]的前一列array[hang][lie-1]进行扫描,
                            for(int hang1=hang ; hang1<R_h;hang1++)
                            {
                            //注意,如果是第0列,就没有前一列。
                                if(lie>0&&array[hang][lie-1]==target)
                                   result = true;
                            }

                        }

                }
        }
        return result;
    }
}
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务