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

二维数组中的查找

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;
	}
};
全部评论

相关推荐

勤劳的鲸鱼在okr拆解:没有别的选择就去吧,有实习和没实习找工作是天上地下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务