使用最小花费爬楼梯:
动态规划:
php,24ms。
状态转移方程:
$dp[$i] = min($dp[$i-1]+$cost[$i-1],$dp[$i-2]+$cost[$i-2]);
题目奇葩,不做赘述。注意的一点是,dp数组要比cost长一位。
class Solution {
/**
* @param Integer[] $cost
* @return Integer
*/
function minCostClimbingStairs($cost) {
$dp = [];
$dp[0] = 0;
$dp[1] = 0;
for($i = 2;$i < count($cost)+1;$i++){
$dp[$i] = min($dp[$i-1]+$cost[$i-1],$dp[$i-2]+$cost[$i-2]);
}
return end($dp);
}
}