#每日一题#
二维数组中的查找
代码实现的是在一个二维矩阵中查找目标值是否存在。矩阵的行和列都是按照升序排列的。算法思想类似于二分查找。

具体来说,从矩阵的右上角开始,因为这个位置是所在行最大,所在列最小的位置。然后如果这个位置的值大于目标值,则目标值不可能存在于当前列,向左移动一列;如果这个位置的值小于目标值,则目标值不可能存在于当前行,向下移动一行;如果这个位置的值等于目标值,则直接返回true;直到搜索到矩阵的左下角,或者没有找到目标值为止。

最后,如果搜索到矩阵的左下角,还没有找到目标值,则说明目标值不存在于矩阵中,返回false。

总体来说,这个算法的时间复杂度是O(m+n),其中m和n分别是矩阵的行数和列数。空间复杂度是O(1),因为这个算法只使用了常数个临时变量。
展开
荔枝爱编程于2023-03-27 11:04发布的图片
评论