编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。 每列的元素从上到下升序排列。
class Solution {
public:
bool searchMatrix(vector<vector<int>>& matrix, int target) {
int rows = matrix.size(), cols = matrix[0].size();
//从右上角开始走
int right = cols - 1, top = 0;
while(right >= 0 && top < rows){
//找到了就返回ture
if(matrix[top][right] == target)
return true;
//如果比目标值大,向左走
if(matrix[top][right] > target)
--right;
//比目标值小,向下走
else
++top;
}
return false;
}
};
Accepted
129/129 cases passed (84 ms)
Your runtime beats 89.28 % of cpp submissions
Your memory usage beats 38.86 % of cpp submissions (14.5 MB)