【剑指offer】1-二维数组中的查找

二维数组中的查找

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

文章首发于:https://blog.csdn.net/donaldsy/article/details/106355996

1、暴力法

直接遍历进行查找,试一试的心态,原以为会超时,没想到通过了。

    bool Find(int target, vector<vector<int> > array) 
    {
        for(int row = 0; row < array.size();++ row)
        {
            for(int col = 0; col < array[row].size(); ++col)
            {
                if(target == array[row][col])
                    return true;
            }
        }
        return false;
    }

第一次提交:运行时间:10ms,占用内存:1492k
第二次提交:运行时间:13ms,占用内存:1372k

2、剑指offer书中思路

先从右上角开始进行比较,比较情况会有如下三种结果:

  • target == array[i][j],刚好相等,直接返回
  • target < array[i][j],target更小,说明不在该列,删除该列元素。
  • target > array[i][j],target更大,说明不在该行,删除该行元素。

完整代码为:

    bool Find(int target, vector<vector<int> > array) 
    {
        int row = 0;
        int col = array[0].size()-1; //这里需要注意
        while(row < array.size() && col >= 0)
        {
            if(target == array[row][col])
            {
                return true;                
            }
            else if(target < array[row][col])
            {
                -- col;
            }else
            {
                ++ row;                
            }
        }

        return false;
    }

第一次提交:运行时间:17ms,占用内存:1480k
第二次提交:运行时间:13ms,占用内存:1484k

根据提交结果,没想到前面的方法更快😂

全部评论
二分查找如何进行?可以逐行,对该行进行二分查找,有没办法对行、列都二分查找?
点赞 回复 分享
发布于 2020-05-26 15:00

相关推荐

03-03 23:42
复旦大学 Java
tongx_:闹呢,这找不到其他人还活不活
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24618次浏览 484人参与
# 中国电信笔试 #
31039次浏览 283人参与
# 厦门银行科技岗值不值得投 #
7457次浏览 186人参与
# 你的实习产出是真实的还是包装的? #
18722次浏览 329人参与
# 如果秋招能重来,我会____ #
96676次浏览 500人参与
# 春招至今,你的战绩如何? #
59649次浏览 537人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14092次浏览 209人参与
# i人适合做什么工作 #
36894次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79496次浏览 219人参与
# 哪些公司真双非友好? #
69184次浏览 287人参与
# 找AI工作可以去哪些公司? #
7623次浏览 182人参与
# 从事AI岗需要掌握哪些技术栈? #
7591次浏览 241人参与
# 面试尴尬现场 #
220741次浏览 861人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339860次浏览 2165人参与
# 五一之后,实习真的很难找吗? #
102793次浏览 584人参与
# 金三银四,你的春招进行到哪个阶段了? #
21518次浏览 277人参与
# 你做过最难的笔试是哪家公司 #
29869次浏览 185人参与
# 你小时候最想从事什么职业 #
159833次浏览 2072人参与
# 阿里笔试 #
176241次浏览 1302人参与
# 应届生第一份工资要多少合适 #
20471次浏览 84人参与
# 一张图晒出你司的标语 #
3790次浏览 71人参与
# 面试被问期望薪资时该如何回答 #
382455次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务