剑指Offer(一):二维数组中的查找

2017年11月20日11:37:10 9 19,631 °C
摘要

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

剑指Offer(一):二维数组中的查找

一、前言

本系列文章为《剑指Offer》刷题笔记。

刷题平台:牛客网

书籍下载:共享资源

二、题目

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

1、思路

首先选取数组中右上角的数字。如果该数字等于要查找的数字,查找过程结束;如果该数字大于要查找的数组,剔除这个数字所在的列;如果该数字小于要查找的数字,剔除这个数字所在的行。也就是说如果要查找的数字不在数组的右上角,则每一次都在数组的查找范围中剔除一行或者一列,这样每一步都可以缩小查找的范围,直到找到要查找的数字,或者查找范围为空。

2、举例

如果在一个二维数组中找到数字7,则返回true,如果没有找到,则返回false。

剑指Offer(一):二维数组中的查找

查找过程如下:

剑指Offer(一):二维数组中的查找

3、编程实现

C++:

Python2.7:

weinxin
微信公众号
分享技术,乐享生活:微信公众号搜索「JackCui-AI」关注一个在互联网摸爬滚打的潜行者。
Jack Cui

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:9   其中:访客  6   博主  3

    • avatar skldecsdn 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省武汉市 华中师范大学 4

      我见师兄们找工作时也在刷这个,博主知道leetCode吗?牛客网上的和leetCode对比如何呢?

        • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Windows 10 辽宁省沈阳市 联通

          @skldecsdn leetcode是外国的,适合于长期刷题,锻炼编程思维。
          牛客网是国内的,适合在找工作期间使用,更有针对性。

            • avatar skldecsdn 来自天朝的朋友 谷歌浏览器 Windows 7 湖北省武汉市 华中师范大学 4

              @Jack Cui 哦,酱紫啊,明白了明白了。

          • avatar Lau 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市 联通 1

            大神,请问找关于数据挖掘的实习应该在牛客网上刷什么样的题呢

              • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器  Android 7.1.1 MIX 2 Build/NMF26X 辽宁省沈阳市 联通GSM/WCDMA/LTE共用出口

                @Lau 都一样,都是这些基础题。

                  • avatar 无敌的史迪仔 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市 联通 1

                    @Jack Cui 谢谢!会好好努力的,以你为学习对象哈哈

                • avatar anonymous 来自天朝的朋友 谷歌浏览器 Windows 10 广东省广州市 电信 1

                  学习到了,以后面试前必须备战这个!

                    • avatar Jack Cui Admin 来自天朝的朋友 谷歌浏览器 Windows 7 辽宁省沈阳市 东北大学三舍南(研究生)

                      @anonymous 感谢支持!!

                    • avatar 小白 来自天朝的朋友 谷歌浏览器 Windows 10 湖南省岳阳市 移动 1

                      请问一下用vector初始化数组并复制一维数组A[]的话,一维数组:vector array(A, A+sizeof(A)/sizeof(A[0]))
                      那么要是使用vector初始化二维数组,也想复制二维数组A[][]的话该怎么写呢? vector <vector > array(?)
                      谢谢!