题解 | #二维数组中的查找#

二维数组中的查找

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;
    }
};

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务