题目英文

Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the following properties:

  • Integers in each row are sorted from left to right.
  • The first integer of each row is greater than the last integer of the previous row.

Example 1:

Input:
matrix = [[1,   3,  5,  7],[10, 11, 16, 20],[23, 30, 34, 50]
]
target = 3
Output: true

Example 2:

Input:
matrix = [[1,   3,  5,  7],[10, 11, 16, 20],[23, 30, 34, 50]
]
target = 13
Output: false

题目中文

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

  • 每行中的整数从左到右按升序排列。
  • 每行的第一个整数大于前一行的最后一个整数。

示例 1:

输入:
matrix = [[1,   3,  5,  7],[10, 11, 16, 20],[23, 30, 34, 50]
]
target = 3
输出: true

示例 2:

输入:
matrix = [[1,   3,  5,  7],[10, 11, 16, 20],[23, 30, 34, 50]
]
target = 13
输出: false

算法实现

public class Solution
{public bool SearchMatrix(int[][] matrix, int target){if (matrix == null)return false;int rows = matrix.Length;for (int i = 0; i < rows; i++){if (matrix[i] == null || matrix[i].Length == 0)return false;int j = matrix[i].Length - 1;if (matrix[i][j] == target)return true;if (matrix[i][j] > target)return BinSearch(matrix[i], target);}return false;}public bool BinSearch(int[] key, int target){int left = 0;int right = key.Length;while (left <= right){int mid = (left + right)/2;if (key[mid] == target)return true;if (key[mid] < target)left = mid + 1;elseright = mid - 1;}return false;}
}

实验结果

测试用例:

输入:[[]]
1输出:false

相关图文

  • LeetCode实战:删除链表的倒数第N个节点
  • LeetCode实战:合并两个有序链表
  • LeetCode实战:两两交换链表中的节点
  • LeetCode实战:旋转链表
  • LeetCode实战:相同的树
  • LeetCode实战:对称二叉树
  • 如何利用 C# 实现 K 最邻近算法?
  • 如何利用 C# 实现 K-D Tree 结构?
  • 如何利用 C# + KDTree 实现 K 最邻近算法?
  • 如何利用 C# 对神经网络模型进行抽象?
  • 如何利用 C# 实现神经网络的感知器模型?
  • 如何利用 C# 实现 Delta 学习规则?
  • 如何利用 C# 爬取 One 持有者返利数据!
  • 如何利用 C# 爬取BigOne交易所的公告!
  • 如何利用 C# 爬取 ONE 的交易数据?
  • 如何利用 C# 爬取「京东 - 计算机与互联网图书销量榜」!
  • 如何利用 C# 爬取「当当 - 计算机与互联网图书销量榜」!
  • 如何利用 C# 爬取「猫眼电影专业版:票房」数据!
  • 如何利用 C# 爬取「猫眼电影:国内票房榜」及对应影片信息!
  • 如何利用 C# 爬取带 Token 验证的网站数据?

LeetCode实战:搜索二维矩阵相关推荐

  1. LeetCode 240. 搜索二维矩阵 II(二分查找 分治)

    文章目录 1. 题目 2. 解题 2.1 从左下角或者右上角开始搜索 2.2 分治算法 1. 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以 ...

  2. leetcode 74. 搜索二维矩阵(二分)

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入:matrix = ...

  3. 【leetcode】搜索二维矩阵 II

    题目: 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 ma ...

  4. LeetCode 74. 搜索二维矩阵(二分查找)

    1. 题目 编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性: 每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数. 示例 1: 输入: m ...

  5. Leetcode 74. 搜索二维矩阵 (每日一题 20210907)

    编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值.该矩阵具有如下特性:每行中的整数从左到右按升序排列. 每行的第一个整数大于前一行的最后一个整数.示例 1:输入:matrix = [[ ...

  6. Leetcode 240.搜索二维矩阵II (每日一题 20210727 同一题)

    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target .该矩阵具有以下特性:每行的元素从左到右升序排列. 每列的元素从上到下升序排列.示例 1:输入:matrix = ...

  7. LeetCode 240. 搜索二维矩阵

    因为矩阵的行和列是排序的(分别从左到右和从上到下),所以在查看任何特定值时,我们可以修剪O(m)O(m)或O(n)O(n)元素. 算法: 首先,我们初始化一个指向矩阵左下角的 (row,col)(ro ...

  8. leetcode 240. 搜索二维矩阵 II

    编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 matrix ...

  9. [leetcode]240. 搜索二维矩阵 II

    行.列二分: class Solution {public:bool binsearch(vector<vector<int>>& matrix, int target ...

  10. 【LeetCode】【HOT】240. 搜索二维矩阵 II(抽象二叉搜索树)

    [LeetCode][HOT]240. 搜索二维矩阵 II 文章目录 [LeetCode][HOT]240. 搜索二维矩阵 II package hot;public class Solution24 ...

最新文章

  1. RabbitMQ C Client编译
  2. phpstrom 里面的 文件修改后 的*怎样设置
  3. 详解WordPress中简码格式标签编写的基本方法
  4. 收藏!细胞增殖实验要点详解
  5. Hibernate Mysql 写入中文乱码 解决方法
  6. 我经常访问的技术网站
  7. spring_redis整合
  8. 拒绝版权流氓!阿里巴巴重磅发布免费商用字体
  9. 【Python】Tkinter教程
  10. 软件开发成本工作量估算
  11. java考试座位号_怎么用java编写出座位号(1.0)这样格式?
  12. 写入文件(覆盖文件的内容)
  13. java显示数据库_java查询数据库中的数据并显示
  14. 版权问题某些资源无法下载
  15. 用keras采用DCGAN网络生成三国群英传7的人物头像
  16. SDRAM突发读写注意
  17. 飞利浦 V808 android
  18. lms消噪声matlab,关于LMS去噪声的仿真
  19. 电路原理图中的各种地(数字地、模拟地、信号地、直流地、交流地、屏蔽地)的区别
  20. 嵌入式开发 1 -8051单片机的结构体系(待更)

热门文章

  1. 零基础怎么学习Java?
  2. 配置linux-Fedora系统下iptables防火墙
  3. 关于epel源的配置
  4. selenium grid2 使用远程机器的浏览器
  5. android圆形旋转菜单,而对于移动转换功能支持
  6. 安装node和spm过程
  7. android:退出程序
  8. 连接不上ftp解决方案
  9. nginx的安装和使用(一)
  10. android 手写字体识别,一种基于Android系统的手写数学公式识别及生成MathML的方法...