ДМ
Size: a a a
ДМ
АР
Вキ
S
Вキ
S
Вキ
S
YK
D
S
VS
S
VS
C
𝕮[
function searchMatrix(mat, value) {
let start = 0
let end = mat.length - 1;
while (start <= end) {
let mid = Math.floor((start + end) / 2);
let midRow = mat[mid];
let midLastValue = midRow[midRow.length - 1];
if (midLastValue === value) {
return true;
}
if (midLastValue < value) {
start = mid + 1
} else {
end = mid - 1;
}
}
let checkRow = start === end || end < start ? mat[start] : mat[start].concat(mat[end])
return binarySearch(checkRow, value);
}
function binarySearch(list, value) {
let start = 0
let end = list.length - 1;
while (start <= end) {
let mid = Math.floor((start + end) / 2);
let midValue = list[mid];
if (midValue === value) {
return true;
}
if (midValue < value) {
start = mid + 1
} else {
end = mid - 1;
}
}
return false;
}
𝕮[
E