来源:CC150
原帖:CC150 9.6
题目:
有一个n*m的2维矩阵matrix,矩阵每一行,每一列都是有序的(升序)。判断矩阵中是否存在元素target。提示:时间复杂度O(n+m),空间复杂度O(1)。
Solution: 从右上角或者左下角开始进行。
代码:
原帖:CC150 9.6
题目:
有一个n*m的2维矩阵matrix,矩阵每一行,每一列都是有序的(升序)。判断矩阵中是否存在元素target。提示:时间复杂度O(n+m),空间复杂度O(1)。
Solution: 从右上角或者左下角开始进行。
代码:
bool exists(vector<vector<int> > &matrix, int target) {
if(matrix.empty()) {
return false;
}
int M = matrix.size(), N = matrix[0].size();
int i = 0, j = N - 1;
while (i < M && j >= 0) {
if (matrix[i][j] == target) {
return true;
} else if (matrix[i][j] < target) {
i++;
} else {
j--;
}
}
return false;
}
No comments:
Post a Comment