leetcode-198. 打家劫舍


题目

198. 打家劫舍

解法

\[fn= \left\{ \begin{array}{**lr**} max(f_{n-1}, f_{n-2}+nums[n]), & n\geq 2 \\ nums[0], & n=0 & \\ max(nums[1], nums[0]), & n=1 & \\ \end{array} \right. \]

class Solution {
    
    /**
     * @param Integer[] $nums
     * @return Integer
     */
    function rob($nums) {
        $ret = [
            $nums[0],
            max($nums[0], $nums[1]),
        ];

        for ($i = 2; $i < count($nums); $i++) {
            $ret[$i] = max($ret[$i - 1], $ret[$i - 2] + $nums[$i]);
        }
        
        return $ret[count($nums) - 1];
    }
}