题目分析:[[EVD]] - 剑指 Offer 04. 二维数组中的查找
https://leetcode-cn.com/problems/er-wei-shu-zu-zhong-de-cha-zhao-lcof/
简单描述:
- 递增矩阵,查找有无target
限制🚫
- 0 <= n <= 1000
- 0 <= m <= 1000
- 左➡️右,上➡️下递增
示例:
[
[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]
]
输入:5
输出:true
解题思路:
思路:
- #二叉搜索树 从右上角或左下角形成,类似二叉搜索树一样的东西,大小与方向挂钩
效率:
- 时间复杂度
- 空间复杂度
代码:
class Solution
{
public:
/*从右上角开始走*/
bool findNumberIn2DArray(vector<vector<int> > &matrix, int target)
{
if (matrix.size() == 0)
return false;
int l = 0, col = matrix[0].size() - 1;
while (l < matrix.size() && col >= 0)
{
if (matrix[l][col] > target)
col--; //消去列
else if (matrix[l][col] < target)
l++; //消去行
else
return true;
}
return false;
}
};