《剑指offer》面试题04. 二维数组中的查找
问题描述
在一个 n * m 的二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
示例:
现有矩阵 matrix 如下:
[
  [1,   4,  7, 11, 15],
  [2,   5,  8, 12, 19],
  [3,   6,  9, 16, 22],
  [10, 13, 14, 17, 24],
  [18, 21, 23, 26, 30]
]
给定 target = 5,返回 true。
给定 target = 20,返回 false。
限制:
0 <= n <= 1000
0 <= m <= 1000
代码
我们从右上角开始搜索,如果右上角的值比target大说明要向左搜索(j--),如果右上角的值比target小说明要向下搜索(i++)
class Solution {
public:
    bool findNumberIn2DArray(vector<vector<int>>& matrix, int target) {
        int m = matrix.size();
        if(m < 1)return false;
        int n = matrix[0].size(),i = 0,j =n-1;
        while(i < m && j >= 0)
        {
            if(target  == matrix[i][j])
                return true;
            else if(target < matrix[i][j])
                --j;
            else
                ++i;
        }
        return false;
    }
};
结果:
执行用时 :76 ms, 在所有 C++ 提交中击败了6.65%的用户
内存消耗 :13.3 MB, 在所有 C++ 提交中击败了100.00%的用户
												
											《剑指offer》面试题04. 二维数组中的查找的更多相关文章
- 剑指offer面试题3  二维数组中的查找(c)
		
剑指offer面试题三:
 - 剑指offer面试题3二维数组中的查找
		
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 需要与面试官确认的是,这 ...
 - 剑指offer面试题4: 二维数组中的查找
		
题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
 - 剑指offer面试题3 二维数组中的查找 (java)
		
注:java主要可以利用字符串的length方法求出长度解决这个问题带来方便 public class FindNum { public static void main(String[] args) ...
 - 剑指Offer - 九度1384 - 二维数组中的查找
		
剑指Offer - 九度1384 - 二维数组中的查找2013-11-23 23:23 题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个 ...
 - 剑指offer【01】- 二维数组中的查找(Java)
		
在经历了春招各大公司的笔试题和面试官的血虐之后,决定要刷一些算法题了,不然连面试机会都没有. 而应对笔试和面试,比较出名的就是剑指offer的题目和LeetCode的题目了.剑指offer应对面试中的 ...
 - 剑指offer第二版-4.二维数组中的查找
		
面试题4:二维数组中的查找 题目要求: 一个二维数组中,每一行从左到右递增,每一列从上到下递增.输入一个整数,判断数组中是否含有该整数 /** * @since 2019年2月13日 下午5:08:5 ...
 - 剑指Offer编程题1——二维数组中的查找
		
剑指Offer编程题1---------------二维数组中的查找 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完 ...
 - 【剑指Offer】1、二维数组中的查找
		
题目描述: 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否 ...
 - 剑指offer(3)——二维数组中的查找
		
题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 思路: 首先选取数组中右上 ...
 
随机推荐
- List.Sum…统计信息(Power Query 之 M 语言)
			
数据源: 任意数据源,一列数值,一列非数值(文本) 目标: 对数值列进行求和等计算,对非数值列进行计数等计算 操作过程: 选取待计算的列>[转换]>[统计信息]>选取 M公式: ...
 - CF792A New Bus Route 题解
			
Content 给定一个长度为 \(n\) 的数列 \(a_1,a_2,a_3,...,a_n\),求这个序列当中差的绝对值最小的数对并求出这样的数对的个数. 数据范围:\(2\leqslant n\ ...
 - 第二周Python笔记之 变量的三元运算
			
如果变量a小于b,则d的值取a变量的值,否则取c变量的值
 - 查找局域网中未知设备的IP
			
先运行net view,然后再运行arp -a 设备启动前后对比IP列表
 - tmux技巧
			
tmux 输入sz rz卡住的解决办法 解决: 仅连续4次输入ctrl+x即可解决. 原因:原因是在Xmodem协议中,ctrl+x 为信号 CAN,在协议中为"无条件中止"信号. ...
 - [Elasticsearch] ES 的Mapping 设计在实际场景中应用
			
背景 项目中有个需求是需要几个字段作为标签,统计各个标签的文档数量,同时支持分词后的全文检索功能. 原有的mapping设计: curl -XPUT http://ip:9200/meta_es_me ...
 - JAVA运行报错 [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
			
执行 String[] rwords = (String[]) list.toArray(); 报错[Ljava.lang.Object; cannot be cast to [Ljava.lang. ...
 - Linux蓝牙库blueZ
			
1.blueZ 官网 2.zigbee 网络库zigbee(可用在smart home devices)
 - 【LeetCode】868. Binary Gap 解题报告(Python)
			
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 线性扫描 日期 题目地址:https://leetc ...
 - LeetCode1240铺瓷砖
			
题目 n*m的矩阵,只用正方形铺.求最少正方形个数. n,m<=13 思路 贪心: 加入是最大的正方形,显然行不通,比如n=11,m=13.那么贪心策略是1个11,其余是大小为2的正方形5个,大 ...