程序员面试金典——11.6矩阵元素查找
Solution1:我的答案。和剑指offer上的题目类似,复杂度是O(m+n)O(m+n)。
class Finder {
public:
vector<int> findElement(vector<vector<int> > mat, int n, int m, int x) {
// write code here
vector<int> res;
if(m * n == 0) //特殊情况处理
return res;
for(int i = 0; i < n; i++) {
if(mat[i][m-1] >= x) {
for(int j = m - 1; j >= 0; j--) {
if(mat[i][j] == x) {
res.push_back(i);
res.push_back(j);
return res;
}
}
}
}
return res;
}
};
本文介绍了一种矩阵元素查找算法,采用O(m+n)的时间复杂度实现。通过从矩阵右上角开始逐行逐列比较目标值,适用于递增排列的二维数组搜索。

被折叠的 条评论
为什么被折叠?



