LeetCode 74. Search a 2D Matrix
2020-05-27 19:44:16
# leetcode
Problem
LeetCode 74. Search a 2D Matrix
1. 题目简述
写出一个函数来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:
1. 每行中的整数从左到右按升序排列。
2. 每行的第一个整数大于前一行的最后一个整数。
Input:
matrix = [
[1, 3, 5, 7],
[10, 11, 16, 20],
[23, 30, 34, 50]
]
target = 3
Output: true
2. 算法思路
Binary Search
这道题的矩阵其实是一个完全有序的矩阵,有两种做法:第一种是先找行数,在找列数;第二种做法是只做一次二分查找,l = 0,r = m * n - 1,然后通过算式来计算middle的横纵坐标来进行下一步计算。
3. 解法
1.分别计算横纵坐标:需要注意的是第一次查找完以后,如果发现这个数比全局最小都小,也就是l = 0,则直接返回-1.
1 | class Solution { |
- 一次计算二分搜索
1 | class Solution { |