思路:Z字形查找
从matrix的右上角(0,n-1)进行搜索,每一步的搜索过程中,如果位于位置(x,y),那么以matrix的左下角为左下角、以(x,y)为右上角的矩阵进行搜索。
搜索过程中,超出矩阵边界,说明矩阵不存在target
class Solution { public: bool searchMatrix(vector<vector<int>>& matrix, int target) { int i=0,j=matrix[0].size()-1; while(i>=0&&i<matrix.size()&&j>=0&&j<matrix[0].size()){ if(matrix[i][j]==target) return true; else if(matrix[i][j]<target) ++i; else --j; } return false; } };
时间复杂度 O(m+n)
空间复杂度 O(1)