题目描述
已知int一个有序矩阵mat,同时给定矩阵的大小n和m以及需要查找的元素x,且矩阵的行和列都是从小到大有序的。设计查找算法返回所查找元素的二元数组,代表该元素的行号和列号(均从零开始)。保证元素互异。
示例1
输入 [[1,2,3],[4,5,6]],2,3,6
返回值 [1,2]
该题目解题思路与二维数组的查找类似,都是选取二维数组右上角开始,如果小于右上角元素则 j --,大于则 i ++ ,相等就将 该元素的 横纵坐标放到vector中。
class Solution {
public:
vector<int> findElement(vector<vector<int> > mat, int n, int m, int x) {
// write code here
int i = 0,j = m-1;
vector<int> res;
if(n==0 || m==0) return res;
while(i<n && j>=0)
{
if(mat[i][j]>x) j--;
else if(mat[i][j]<x) i++;
else
{
res.push_back(i);
res.push_back(j);
break;
}
}
return res;
}
};