剑指 Offer 04. 二维数组中的查找

这道题是将一维的二分查找扩展为二维数组中的二分查找。

关键点有 3 处:

  1. 起始点的选择
  2. 大于 target 时坐标的变化
  3. 小于 target 时坐标的变化

下图标出了起始点的位置,这个设计很巧妙:

当大于 target 时,需要修改 row 的值

当小于 target 时, 需要修改 column 的值

全部遍历结束,如果都没能找到相等的值,则返回 False;在中间找到了目标值,则返回 True。

答案

class Solution:    def findNumberIn2DArray(self, matrix: List[List[int]], target: int) -> bool:        if not matrix: return False        col = 0        row = len(matrix)-1                while col <= len(matrix[0])-1 and row >= 0:            if matrix[row][col] > target:                row -= 1            elif matrix[row][col] < target:                col += 1            else:                return True        return False

javascript读取文本文件到二维数组代码_十行代码说清楚:leetcode 二维数组中的查找...相关推荐

  1. 二维数组 类型_「初识C语言」二维数组

    一维数组只有一个下标,称为一维数组,其数组元素也称为单下标变量.在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组.多维数组元素有多个下标,以标识它在数组中的位置,所以也称为多下标变量. ...

  2. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、209.长度最小的子数组、59.螺旋矩阵II

    目录 一.今日心得感悟 1.数组从小到大排序 ①冒泡法--时间复杂度:O(nlogn) ②使用排序函数qsort--时间复杂度:O(nlogn) ③两端->中间(双指针法) --时间复杂度:O( ...

  3. 代码随想录算法训练营第二天|LeetCode 977.有序数组的平方 、209.长度最小的子数组 、59.螺旋矩阵II

    LeetCode 977.有序数组的平方 题目链接:977.有序数组的平方 思路: 1.先对每个数进行遍历平方,并插入新的容器中 2.对容器进行排序,返回就可以了 缺陷:开辟了新的容器空间 class ...

  4. 代码随想录算法训练营第二天 | LeetCode 977.有序数组的平方、​LeetCode 209.长度最小的子数组、LeetCode 59.螺旋矩阵II

    LeetCode 977.有序数组的平方 双指针法:数组其实是有序的, 只不过负数平方之后可能成为最大数了.那么数组平方的最大值就在数组的两端,不是最左边就是最右边,不可能是中间.此时可以考虑双指针法 ...

  5. 代码随想录算法训练营第二天|leetcode 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

    leetcode 977.有序数组的平方 想到昨天写的双指针,十分刻意用了一下,感觉还是比较生疏,还得加强练习和思考,然后发现还需要排序,想到了vector的排序sort(),但是觉得直接用不好,也忘 ...

  6. 单机多节点有意义吗_十行代码让你的单机“影分身”,分布式训练速度快到飞起...

    工程师​:"在你辉煌的时刻,让我为你唱首歌,我的好兄弟,心里有苦你对我说." 计算机​:"哥啊,那我可就说了,我是真的苦啊,现在一个模型动辄好几亿参数,数据集也是大的吓人 ...

  7. 网页漂浮物代码_无代码VS低代码。 有什么不同? 它。 不。 物。

    网页漂浮物代码 You may hear the terms "No Code" and "Low Code" thrown around by develop ...

  8. 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...

    管理员所有权代码 Code ownership sucks. 代码所有权糟透了. It limits code and stunts your growth as a developer. 它限制了代 ...

  9. sqldataadapter.fill 索引超出了数组界限_小学生学习C++||第十五节 数组

    存储数据的方式 第一种,变量: 存放1个学生的数学成绩可以定义1个变量存放,那么如果想要存放100个学生的数学成绩应该如何存储呢? 第二种,数组: 引入数组概念: 可以用来表达类型相同的元素的集合,集 ...

最新文章

  1. JAVA 继承内存模型_Java内存模型
  2. servlet知识点
  3. 如何在 TensorFlow 中用深度学习修复图像?(附论文)
  4. Web- HTML网页颜色大全
  5. mysql semi-synchronous_MySQL Semisynchronous Replication介绍
  6. android开机动画多长时间_Android系统开机动画的一生
  7. Java程序员的日常
  8. android 字体点击变色,Android TextView 中实现部分文字变色以及点击事件
  9. 【报告分享】2020年中过短视频+教育发展展望.pdf(附教育行业交流社群及报告下载链接)...
  10. GitHub 标星 11000+,阿里开源的微服务组件如何连续 10 年扛住双十一大促?
  11. 「WC 2019」数树
  12. 人工智能几行代码实现换脸,python+dlib实现图文教程
  13. 三菱a系列motion软体_三菱系列 PLC常见问题解答
  14. 僵尸粉检测 php,微信新功能,一键检测你的手机卡不卡,还能查僵尸粉
  15. 数值分析:Python实现列主元高斯消去法与LU分解法求解线性方程组
  16. 第五章:优势策略均衡
  17. Integrated Electrical Test Vehicle Co-designed with Microfluidics for Evaluating the Performance of
  18. python 代码库之遍历ttf字库编码和字符(含demo)
  19. 高性能服务器架构(High-performace Server Architecture)
  20. 91sp.vido.ws index.php_Vidows

热门文章

  1. 9.Java 面试题整理(UML 方面 )
  2. 无心剑中译海涅《新春》
  3. Spring Boot基础学习笔记14:实现文件上传功能
  4. AngularJS案例:简单计算
  5. mysql-5.6.31.tar.gz_MySQL5.6.31源码安装
  6. php多图片上传到数组,input type=file多图片上传 原生html传递的数组集合
  7. 2017.9.15 最大数maxnumber 思考记录
  8. 【英语学习】【English L06】U06 Banking L3 Do you have a credit card?
  9. 【英语学习】【English L06】U06 Banking L2 A savings account sounds better for me
  10. 【英语学习】【WOTD】gargantuan 释义/词源/示例