LEETCODE(C++) 74. 搜索二维矩阵

题目描述:

编写一个高效的算法来判断 m x n 矩阵中,是否存在一个目标值。该矩阵具有如下特性:

    每行中的整数从左到右按升序排列。
    每行的第一个整数大于前一行的最后一个整数。

解题思路:

这就是二维的二分查找,先在最后一列二分查找,确定行,再在该行二分查找。

注意点:

两次二分查找略有不同

1.left < right or left <= right

2.right = mid or right = mid-1

以上两个细节都需注意,不然不仅会导致算法不对,程序还会陷入无尽的循环中。

bool searchMatrix(vector>& matrix, int target) {
        int m = matrix.size(), n = matrix[0].size();
        int top = 0, bottom = m-1;
        while(top

你可能感兴趣的:(leetcode(c++),leetcode,c++,矩阵)