Сложность: easy
Вам дан целочисленный массив cost, где cost[i] - стоимость i-й ступеньки на лестнице. После оплаты стоимости вы можете подняться на одну или две ступеньки. Вы можете начать со ступеньки с индексом 0 или со ступеньки с индексом 1. Верните минимальную стоимость достижения вершины этажа.
Пример:
Input: cost = [10,15,20]
Output: 15
👨💻 Алгоритм:
1⃣Создать массив dp, где dp[i] хранит минимальную стоимость достижения i-й ступеньки.
2⃣Инициализировать dp[0] и dp[1] как cost[0] и cost[1] соответственно. Заполнить dp используя минимальную стоимость подъема с предыдущих ступенек.
3⃣Вернуть минимальную стоимость достижения вершины.
😎 Решение:
function minCostClimbingStairs($cost) {
$n = count($cost);
$dp = $cost;
for ($i = 2; $i < $n; $i++) {
$dp[$i] += min($dp[$i - 1], $dp[$i - 2]);
}
return min($dp[$n - 1], $dp[$n - 2]);
}Ставь 👍 и забирай 📚 Базу знаний