bool searchArray(vector<vector<int>> array, int target) {
// 检查数组是否为空或第一行是否为空,如果任一条件为真,则返回false
if (array.empty() || array[0].empty()) return false;
// 初始化行索引i为0,列索引j为数组最后一列的索引
int i = 0, j = array[0].size() - 1;
// 开始循环,条件是行索引i小于数组的行数且列索引j大于等于0
while (i < array.size() && j >= 0) {
// 如果当前元素等于目标值,返回true
if (array[i][j] == target) return true;
// 如果当前元素大于目标值,说明目标值不可能在当前元素的右边或下方
// 因此将列索引j减一,向左移动
if (array[i][j] > target) j--;
// 如果当前元素小于目标值,说明目标值不可能在当前元素的左边或上方
// 因此将行索引i加一,向下移动
else i++;
}
// 如果遍历完整个数组后仍未找到目标值,返回false
return false;
}