文章目录
- 一、题目
- [二、C# 题解](# 题解)
一、题目
给定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
。
二、C# 题解
以右上方的元素为起点,向左下方查找,即可以看成是一个二叉查找树:
csharp
public class Solution {
public bool SearchMatrix(int[][] matrix, int target) {
if (matrix.Length == 0) return false;
int row = matrix.Length, col = matrix[0].Length, i = 0, j = col - 1;
while (i < row && j >= 0) {
if (target == matrix[i][j]) return true;
if (target > matrix[i][j]) i++; // 进入右子树
else j--; // 进入左子树
}
return false;
}
}
- 时间:120 ms,击败 100.00% 使用 C# 的用户
- 内存:60.17 MB,击败 100.00% 使用 C# 的用户