题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
//思路:每行是有序的,那么找到一个大于tar的数就不用找了。
//行首元素大于上一行,那么找到大于tar的行首,下面的行也不用找了。
//注意存在空数组的情况 你要么加上下面这句 要么做异常处理
// if(array.empty()||array.at(0).empty()) return false;
for(auto& col:array)
{
try {
//这里访问第一个元素可能会抛出out_of_range异常
if(col.at(0)>target) break;
} catch (std::out_of_range &exc) {
return false;
}
for(auto& it:col)
{
if(it==target) return true;
if(it > target) break;
}
}
return false;
}
};
