JavaScript
رفتن به کانال در Telegram
Всё о JavaScript и frontend-разработке. Проверка своих знаний по языку JavaScript. Ссылка: @Portal_v_IT Сотрудничество: @oleginc,
نمایش بیشتر2 399
مشترکین
+124 ساعت
-87 روز
-2830 روز
آرشیو پست ها
2 399
Сложность: easy
Задача: 375. Guess Number Higher or Lower II
Мы играем в угадайку. Правила игры следующие:
Я загадываю число между 1 и n.
Вы угадываете число.
Если вы угадаете правильное число, вы выигрываете игру.
Если вы угадаете неправильное число, я скажу вам, загаданное число больше или меньше, и вы продолжите угадывать.
Каждый раз, когда вы угадываете неправильное число x, вы платите x долларов. Если у вас закончились деньги, вы проигрываете игру.
Дано число n. Верните минимальную сумму денег, необходимую для гарантированной победы независимо от того, какое число я загадаю.
Пример:
Input: n = 1
Output: 0
Explanation: There is only one possible number, so you can guess 1 and not have to pay anything.
👨💻 Алгоритм:
1⃣В методе "грубой силы" для чисел в диапазоне (i, j) выбираем каждое число от i до j в качестве опорного и находим максимальную стоимость из его левых и правых сегментов. Если выбрать число из диапазона (i, (i + j) / 2) как опорное, правый сегмент будет длиннее левого, что приведет к боль
2 399
Сложность: medium
Задача: 562. Longest Line of Consecutive One in Matrix
Дана бинарная матрица размера m x n. Вернуть длину самой длинной последовательной линии из единиц в матрице.
Линия может быть горизонтальной, вертикальной, диагональной или анти-диагональной.
Пример:
Input: mat = [[0,1,1,0],[0,1,1,0],[0,0,0,1]]
Output: 3
👨💻 Алгоритм:
1⃣Создайте 3 матрицы для хранения текущей длины последовательных единиц: horizontal, vertical, diagonal и anti_diagonal.
2⃣Итерируйте через каждый элемент матрицы: Если элемент равен 1, обновите соответствующие значения в матрицах horizontal, vertical, diagonal и anti_diagonal. Обновите максимальную длину последовательной линии.
3⃣Верните максимальную длину.
😎 Решение:
class Solution {
longestLine(mat) {
if (!mat || !mat.length || !mat[0].length) {
return 0;
}
const m = mat.length;
const n = mat[0].length;
let maxLength = 0;
const horizontal = Array.from({ length: m }, () => Array(n).fill(0));
