力扣 hot100 Day24

240. 搜索二维矩阵 II

编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:

每行的元素从左到右升序排列。

每列的元素从上到下升序排列。

力扣 hot100 Day24_第1张图片

//看提示写的
class Solution {
public:
    bool searchMatrix(vector>& matrix, int target) {

        int m = matrix.size(),n = matrix[0].size();
        int row = 0, col = n - 1;

        while(row=0)
        {
            if(matrix[row][col] ==target)
            {
                return true;
            }
            else if(matrix[row][col]>target)
            {
                col--;
            }
            else
            {
                row++;
            }
        }
        return false;       
    }
};

复制一下我看到的提示吧:

要选择一个点,使得横向和纵向移动,martix能够有不同的变化

左上角:往右往下移动,martix值都变大,无法区分,不可用

右上角:往左martix变小,往下martix变大,可区分,可用

左下角:往右martix变大,往上martix变小,可区分,可用

右下角:往左往上移动,martix都变小,不可区分,不可用

在这个逻辑上遍历,就能顺利写出上面的代码来了。

这种算法能在O(m+n)完成搜索,效率高。

你可能感兴趣的:(力扣 hot100 Day24)