题解 | #二维数组中的查找#
二维数组中的查找
https://www.nowcoder.com/practice/abc3fe2ce8e146608e868a70efebf62e
class Solution {
public:
bool Find(int target, vector<vector<int> > array) {
// 将二维问题转化为一维问题
// for循环中,行数从小到大
// while循环中,对每一行使用二分查找
// 找到返回true;找不到在循环外返回false
for(int row = 0; row < array.size(); ++row){
int left = 0;
int right = array[0].size() - 1;
while(left <= right){
int mid = left + (right - left) / 2;
if(array[row][mid] == target) return true;
else if(array[row][mid] < target) left = mid + 1;
else right = mid - 1;
}
}
return false;
}
};
查看2道真题和解析