给定一个二维数组,数组每行从左到右都是递增的;没列也是递增的。 请完成一个函数,输入如上二维数组和一个整数,函数功能为判断该整数是都存在于数组中。 时间复杂度尽可能低。(请说明时间复杂度)

给定一个二维数组,数组每行从左到右都是递增的;没列也是递增的。
请完成一个函数,输入如上二维数组和一个整数,函数功能为判断该整数是都存在于数组中。
时间复杂度尽可能低。(请说明时间复杂度)

代码


$arr = array(
    [1,2,8,9],
    [2,4,9,12],
    [4,7,10,13],
    [6,8,11,15]
);
$findParam = 7;
var_dump( find($arr, $findParam) );

/**
 * 顺序查找——时间复杂度O(n²)
 */
function find($arr, $findParam) {
    //将数据放在坐标右上角array[0][col]
    $row = 0; //行
    $col = count($arr[0]) - 1;//列
        while ($row <= count($arr) - 1 && $col >= 0) {
            if ($findParam > $arr[$row][$col])
            $row++;//遇到大的下移
            else if ($findParam < $arr[$row][$col])
            $col--;//遇到小的左移
            else
                return true;
        }
        return false;
}



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 该文章为转载文章,作者简介:汪剑,现在在出门问问负责推荐与个性化。曾在微软雅虎工作,从事过搜索和推荐相关工作。 T...
    名字真的不重要阅读 5,558评论 0 3
  • 基础篇NumPy的主要对象是同种元素的多维数组。这是一个所有的元素都是一种类型、通过一个正整数元组索引的元素表格(...
    oyan99阅读 5,297评论 0 18
  • 美的人千篇一律,有趣的灵魂万里挑一
    书南Q阅读 184评论 0 2
  • 第一篇~不知道写点什么呢,大概这就是所谓的万事开头难吗?是有人推荐才下笔的,她说,没事写点东西吧,像以前一样...
    北海道的小番茄阅读 240评论 4 0
  • 越努力走近,越发现距离远。 没有对比就没有伤害,恰如“我付出了上万块,连一百块都不给我”。 长久的现象推断本质,“...
    瞻彼洛矣阅读 427评论 0 0

友情链接更多精彩内容