题解 | #二维数组中的查找#
二维数组中的查找
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; } };