核心:数组相关,时间复杂度的把握
解析一:(不是很提倡) 时间复杂度较高,效率较低
遍历整个二维数组然后查找相应的target值
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
//第一种方法
int size1=array.size();
int size2=array[0].size();
for(int i=0;i<size1;i++){
for(int j=0;j<size2;j++){
if(array[i][j]==target){
return true;
}
}
}
return false;
}
};
解法二:
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
//第一种方法
// int size1=array.size();
// int size2=array[0].size();
// for(int i=0;i<size1;i++){
// for(int j=0;j<size2;j++){
// if(array[i][j]==target){
// return true;
// }
// }
// }
// return false;
// }
//优化:
int i=0;
int j=array[0].size()-1;
while(i<array.size() && j>=0){
if(target>array[i][j]){
i++;
}
else if(target<array[i][j]){
j--;
}
else
return true;
}
return false;
}
};
如有错误,多多指教!