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

二维数组中的查找

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

/* 由于每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序,因此可以将 target 与右上角的元素相比较,若 target 小于右上角的元素,则将 target 与右上角的倒数第二个元素相比较;若 target 大于右上角的元素,则将 target 与第二行的右上角的元素相比较,若 target 等于右上角的元素,则返回 true */

bool Find(int target, vector<vector<int> >& array) {
  int row = array.size();               // 行
  int col = array[0].size();            // 列
  int l = 0, r = col - 1;
  while (l < row && r >= 0) {
	if (array[l][r] > target) {
	  r--;
	} else if (array[l][r] < target) {
	  l++;
	} else {
	  return true;
	}
  }
  return false;
}

全部评论

相关推荐

牛客101244697号:这个衣服和发型不去投偶像练习生?
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务