- 按行遍历;
- 二分查找每一行中是否有目标值;
- 如果找到返回true,否则遍历结束返回false。
class Solution {
public:
bool hasFind(int target, vector<int> arr) {
int i = 0, j = arr.size();
while (i < j) {
int mid = i + (j - i) / 2;
if (target < arr[mid]) {
j = mid;
}
else if (target > arr[mid]) {
i = mid + 1;
}
else {
return true;
}
}
return false;
}
bool Find(int target, vector<vector<int> > array) {
for (int i = 0; i < array.size();i++) {
if (hasFind(target, array[i])) {
return true;
}
}
return false;
}
};