74. 搜索二维矩阵

Problem: [74. 搜索二维矩阵](https://leetcode.cn/problems/search-a-2d-matrix/description/)

解题方法

将二维数组看作一维数组

  • 得到数组长度,l,r指针

  • 开始遍历(l<r)

    - mid = l + r >> 1 ??

    - 当mat[mid]<=t //mid要对应转换

        - l = mid + 1;

    - 否则

        - r = mid - 1;  

return 对应值,用r转换  

复杂度

时间复杂度:

添加时间复杂度, 示例: $O(n)$

空间复杂度:

添加空间复杂度, 示例: $O(n)$

Code

[]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

public class Solution {

    public bool SearchMatrix(int[][] mat, int t) {

        int m = mat.Length, n = mat[0].Length;

        int l = 0, r = m * n - 1;

        while (l < r) {

            int mid = l + r + 1 >> 1;

            if (mat[mid / n][mid % n] <= t) {

                l = mid;

            } else {

                r = mid - 1;

            }

        }

        return mat[r / n][r % n] == t;

    }

}