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

二维数组中的查找

http://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e

在遍历查找的基础上加了一条判断target是否小于下一行的首元素,如果小于直接返回:

if ((i + 1) < array.size() && array[i + 1][0] > target)
				return false;

另外本题需要注意一下vector的判空条件,否则可能有访问越界的问题。完整代码如下:

class Solution {
public:
	bool Find(int target, vector<vector<int> > array) {
		for (int i = 0; i < array.size(); i++) {
			if (array.size() < 1 || array[i].size() < 1)
				return false;
			for (int j = 0; j < array[i].size(); j++) {
				if (target == array[i][j])
					return true;
				if (array[i][j] > target)
					break;
			}
			if ((i + 1) < array.size() && array[i + 1][0] > target)
				return false;
		}
		return false;
	}
};
全部评论

相关推荐

码农索隆:竞争压力小,就你一个不用卷
点赞 评论 收藏
分享
07-17 12:09
门头沟学院 Java
讲的口干舌燥,头都晕了怎么要讲这么长啊
码农索隆:没事,你口干舌燥,他不一定会看,
投递小鹏汽车等公司7个岗位
点赞 评论 收藏
分享
Lorn的意义:你这种岗位在中国现在要么牛马天天加班,要么关系户进去好吃好喝,8年时间,真的天翻地覆了,对于资本来说你就说一头体力更好的牛马,哎,退伍没有包分配你真的亏了。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务