𝕮[
Size: a a a
𝕮[
J💖
J💖
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;
}
Вキ
Вキ
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;
}
J💖
J💖
Вキ
J💖
VS
N👩
N👩
Вキ
S
N👩
S
J💖
S
Вキ