Problem: [74. 搜索二维矩阵](https://leetcode.cn/problems/search-a-2d-matrix/description/)
解题方法
将二维数组看作一维数组
- 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;
}
}
|