题解 | #二维数组中的查找#
二维数组中的查找
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; }