Tuesday, November 28, 2017

[LeetCode]House Robber


用localMax[i]表示前i + 1个house能够偷到的最大值。那么我们有递归公式:

  • localMax[i] = max(localMax[i - 1], localMax[i - 2] + house[i])
也就是说对于house[i]来说,只有两种情况,偷或者不偷,我们取其中最大的一种情况。时间复杂度O(n),可以优化到常数空间,代码如下:


No comments:

Post a Comment