给定一个数组,数组里的值可以进行相加,但是不能有相邻的两个数相加,那么如何挑选可以得到一个最大值呢。
last:之前计算出的最大值(和当前的i隔了1位);
last+i:之前的最大值加上当前值的和;
now:前两者中的最大值。
class Solution:
def rob(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
last = 0
now = 0
for i in nums: # value
last, now = now, max(last+i, now)
return now