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

二维数组中的查找

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-21 18:43
门头沟学院 Java
是暑期都招满了吗
ANEOY:今年感觉真是后端地狱级难度了,从暑期就是这样,前端需求非常大
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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