面试题 10.09. 排序矩阵查找

给定M×N矩阵,每一行、每一列都按升序排列,请编写代码找出某元素。示例:现有矩阵 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。

题解1(暴力for循环):

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:for row in matrix:for value in row:if value == target:return Truereturn False

题解2:
从右上角的元素出发:
(1)如果当前元素>目标值,说明这一列都大于目标值,向左移动一列
(2)如果当前元素<目标值,说明这一列其他的元素有可能是目标值,向下移动一行

终止条件: 找到了目标元素 或者 行或列越界

class Solution:def searchMatrix(self, matrix: List[List[int]], target: int) -> bool:if not len(matrix) or not len(matrix[0]): #特判一下矩阵为空的情况return Falserow = 0col = len(matrix[0]) - 1while row != len(matrix) and col != -1:if matrix[row][col] > target:col -= 1elif matrix[row][col] < target:row += 1   else:return Truereturn False

面试题 10.09. 排序矩阵查找相关推荐

  1. Leetcode每日一题:10.09.sorted-matrix-search-lcci(排序矩阵查找)

    思路:和之前的矩阵查找几乎一模一样,从右上角开始遍历,如果matrix[x][y]>target,则y–,如果matrix[x][y]<target,则x++,这样往复直到找到target ...

  2. python【力扣LeetCode算法题库】面试题 10.01-合并排序的数组

    面试题 10.01. 合并排序的数组 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序. 初始化 A 和 B 的元素数量分别为 m ...

  3. 数据结构:下列选项中,不可能是快速排序第2趟排序结果的是(2019年全国试题10)

    题目 排序过程中,对尚未确定最终位置的所有元素进行一遍处理称为一"趟".下列排序中,不可能是快速排序第二趟结果的是()[2019年全国试题10(2分)] A. 5, 2, 16, ...

  4. 面试题 10.01. 合并排序的数组

    面试题 10.01. 合并排序的数组 思路:①把B数组放在A数组后面,然后排序.O((n+m)²),太蠢了代码不写 ②copyA数组,然后两个指针判度copyA,和B的值那个小,小的放在A数组中,然后 ...

  5. Leetcode面试题 10.01. 合并排序的数组(C语言)

    Leetcode面试题 10.01. 合并排序的数组(C语言) 题目: 给定两个排序后的数组 A 和 B,其中 A 的末端有足够的缓冲空间容纳 B. 编写一个方法,将 B 合并入 A 并排序.初始化 ...

  6. python面试题-输入一个由n个大小写字母组成的字符,按Ascii码值从小到大排序,查找字符串中第k个最小Ascii码值的字母

    题目: 输入一个由n个大小写字母组成的字符,按Ascii码值从小到大排序,查找字符串中第k个最小Ascii码值的字母(k>=1) 输入要求: 第一行输入大小写组成的字符串 第二行输入k, k必须 ...

  7. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题(10.09)

    九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题 (欢迎加入十月面试题集训组,参与讨论&解题:193308452) 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久), ...

  8. StringBuffer+排序+二分查找+包装类+正则表达式+常用类

    一.StringBuffer 1.概述 我们如果对字符串进行拼接操作,每次拼接,都会构建一个新的String对象,既耗时,又浪费空间.而StringBuffer就可以解决这个问题StringBuffe ...

  9. 编程艺术第二十三~四章十一续:杨氏矩阵查找,倒排索引关键词Hash编码

    第二十三.四章:杨氏矩阵查找,倒排索引关键词Hash不重复编码实践 作者:July.yansha.编程艺术室出品. 出处:结构之法算法之道. 前言 本文阐述两个问题,第二十三章是杨氏矩阵查找问题,第二 ...

最新文章

  1. TypeScript interface
  2. 2016/05/03(接口 买票 临界资源同步锁)
  3. 关于cocostudio动态添加控件触摸响应无效的学习
  4. 工业交换机厂家有哪些,国产工业交换机品牌排行榜
  5. 操作系统课设之简单 shell 命令行解释器的设计与实现
  6. ​苏宁回应股权质押给淘宝:正常合作;苹果App Store被越狱商店指控垄断;Docker 20.10.0发布|极客日报...
  7. 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_01.mybatis课程介绍
  8. 利用ajax查询数据库显示在前台,ajax动态查询数据库数据并显示在前台的方法
  9. ssm+共享图书管理系统 毕业设计-附源码151121
  10. vue 读取shapefile文件转成GeoJson
  11. 小程序分类图标提取_微信全国垃圾分类小程序上线,一键搜索轻松分类垃圾
  12. 计算机折线图教程,excel怎么插入折线图 excel怎么将多个折线图合并
  13. 搜狗收录查询工具,搜狗收录就应该这么做
  14. 另眼看待 qq 和 360. 资本运作
  15. 算法(9)汉诺塔图解及其代码实现
  16. 计算机考研专业课838考什么,17年管理学838专业课初试110分经验贴
  17. 【目标检测】目标检测中常见的评价指标
  18. MLAT-Autoencoders for Conditional Risk Factors and Asset Pricing---上篇
  19. 怎么将iMindMap制作的思维导图转换为甘特图?
  20. 免裁券也不灵?360被曝开始“裁员”,比例达15%到20%

热门文章

  1. 【案例】复制静止问题一则
  2. JAVA IO - RandomAccessFile
  3. 管理表空间和数据文件——建立表空间——建立字典管理表空间和建立加密表空间...
  4. OSPF(Open Shortest Path First)开放式最短路径优先协议05
  5. 【排序+难题】LeetCode 41. First Missing Positive
  6. LeetCode 100. Same Tree
  7. Batch Normalization的意义
  8. tensorflow/pytorch 设置GPU的使用
  9. RabbitMQ学习笔记(二) 工作队列
  10. Storm计算结果是怎样存放的