70. Climbing Stairs
foreach 解法:
class Solution {
/**
* @param Integer $n
* @return Integer
*/
function climbStairs($n) {
if ($n <= 2) {
return $n;
}
$result = [0, 1, 2];
foreach(range(3, $n) as $target) {
$result[$target] = $result[$target - 1] + $result[$target - 2];
}
return $result[$n];
}
}
時間與空間都很省的解法
class Solution {
/**
* @param Integer $n
* @return Integer
*/
function climbStairs($n) {
if ($n <= 2) {
return $n;
}
$result = 0;
$first = 0;
$second = 1;
foreach(range(1, $n) as $step) {
$result = $first + $second;
$first = $second;
$second = $result;
}
return $result;
}
}
Last updated