力扣 剑指offer04 二维数组中查找
发布日期:2021-07-22 07:28:47
浏览次数:2
分类:技术文章
本文共 712 字,大约阅读时间需要 2 分钟。
一、解题思路
观察数据规律,让程序只做必要的判断,因为递增,一旦目标值小于数组中的某个值,那么此行后面元素都可以不用考虑。具体见下面注释
对应算法240题用这个方法会有超时的测试数据,内循环改成二分查找就可以通过。二、解题答案
class Solution { public: bool findNumberIn2DArray(vector>& matrix, int target) { if (matrix.empty()||matrix[0].empty()) return false; //若是空数组直接返回 false,如果忘记判断在遇到空数组时会运行出错 int i, j; for (i = 0; i < matrix.size(); i++) { if (target < matrix[i][0]) return false; //小于行首表明一定不存在 for (j = 0; j < matrix[0].size(); j++) { if (target == matrix[i][j]) return true; //找到相等返回true else if (target < matrix[i][j]) break; //小于某个值,此行后面元素均不用比较 } } return false; //默认找不到 }};
测试用例:
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转载地址:https://blog.csdn.net/m0_45689014/article/details/112974249 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年03月29日 14时53分54秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
第3章-5 字符转换 (15分)【python】
2019-04-26
L1-068 调和平均 (10 分)
2019-04-26
L1-069 胎压监测 (15 分)
2019-04-26
L1-071 前世档案 (20 分)
2019-04-26
L1-072 刮刮彩票 (20 分)
2019-04-26
L2-012 关于堆的判断 (25 分)
2019-04-26
L1-064 估值一亿的AI核心代码 (20 分)
2019-04-26
L2-033 简单计算器 (25 分)
2019-04-26
L2-034 口罩发放 (25 分)
2019-04-26
L2-019 悄悄关注 (25 分)
2019-04-26
L1-020 帅到没朋友 (20 分)
2019-04-26
L1-046 整除光棍 (20 分)
2019-04-26
L2-021 点赞狂魔 (25 分)【优化后的】
2019-04-26
L2-032 彩虹瓶 (25 分)
2019-04-26
L2-004 这是二叉搜索树吗? (25 分)
2019-04-26
L2-011 玩转二叉树 (25 分)
2019-04-26
L2-006 树的遍历 (25 分)
2019-04-26
L3-010 是否完全二叉搜索树 (30 分)
2019-04-26
6-10 阶乘计算升级版 (20 分)
2019-04-26