题目
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性:
每行的元素从左到右升序排列。
每列的元素从上到下升序排列。
思路
从右上角(或左下角)开始,当当前的数大于target,则往右遍历找到更小的数。当当前的数小于target,则往下遍历找到更大的数。
代码
class Solution {
public:bool searchMatrix(vector<vector<int>>& matrix, int target) {int m=matrix.size(),n=matrix[0].size();int i=0,j=n-1;while(i<m&&j>=0){if(matrix[i][j]>target){j--;}else if(matrix[i][j]<target){i++;}else{return true;}}return false;}
};