程式語言 - LeetCode - C++ - 74. Search a 2D Matrix



題目:


解答:

class Solution {
public:
    bool searchMatrix(vector<vector<int>>& matrix, int target) {
        int m = matrix.size();
        int n = matrix[0].size();

        int l = 0;
        int r = m * n - 1;

        while (l <= r) {
            int v = l + ((r - l) >> 1);
            int row = v / n;
            int col = v % n;

            if (matrix[row][col] == target) {
                return true;
            }

            if (matrix[row][col] < target) {
                l = v + 1;
            }
            else {
                r = v - 1;
            }
        }

        return false;
    }
};