时间限制:1秒 空间限制:32768K 热度指数:32359
本题知识点: 查找
** 算法知识视频讲解
题目描述
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
题解:由于二维数组每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。
所以我们从左下角开始查找,比它大的往右走,比它小的往上走即可
代码如下:
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
int rowsize=array.size();
int colsize=array[rowsize-1].size();
for(int i=rowsize-1,j=0;i>=0&&j<colsize;){
if(target>array[i][j]){
++j;
}else if(target<array[i][j]){
--i;
if(i<0)return 0;
j=0;
colsize=array[i].size();
}else{
return 1;
}
}
return 0;
}
};