说明:相信大多数人都见过该题目,本博客是新手所写,望各位大神轻喷。
注意题目:由于给定二维矩阵是行列有序的,所以我们要利用这一条件。假设行、列的元素都是递增排列,那么我们选取的初始元素既可以是左下角,也可以是右上角。最后算法复杂度为o(max(m,n)),m代表行数,n代表列数。
class Solution {
public:bool Find(vector<vector<int> > array,int target) {
if(array.empty()) return false;
int row=0;
int col=array[0].size()-1;
while(row<array.size()&&col>=0){
if(array[row][col]>target){
col--;
}
else if(array[row][col]<target){
row++;
}
else
return true;
}
return false;
}
};