LCR 121. 寻找目标值 - 二维数组
第一种做法循环遍历即可。注意数组为空时判断一下
class Solution {
public:
bool findTargetIn2DPlants(vector<vector<int>>& plants, int target) {
int n=plants.size();
if(n==0)return 0;
int m=plants[0].size();
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(plants[i][j]==target)
return 1;
}
}
return 0;
}
};
第二种做法遍历最后一行,如果>=target,则往上找,这个平均查找效率要高一些
class Solution {
public:
bool findTargetIn2DPlants(vector<vector<int>>& plants, int target) {
int n=plants.size();
if(n==0)return 0;
int m=plants[0].size();
for(int i=0;i<m;i++)
{
if(plants[n-1][i]>=target)
for(int j=n-1;j>=0;j--)
{
if(plants[j][i]==target)
return 1;
}
}
return 0;
}
};