今日份的算法题【leetcode198】卷起来啊,小伙伴们

92 阅读1分钟

leetcode 198

小伙伴们,一起开心刷题吧 没有最卷,只有更卷。

这个题目的解题关键就是当前这个节点的最大值。有两种情况

第一是前两步加上当前的值

第二是前一步的值

在这两个值中选取最大值即可解题

公式:

f(n) = Math.max(f(n-1),f(n-2)+x)

image.png

[leetcode]leetcode.cn/problems/ho…

var rob = function (nums) {
    if(nums.length===1) return nums[0]
    if(nums.length===2) return  Math.max(nums[0],nums[1])
    let p1 = nums[0];
    let p2 = Math.max(nums[0],nums[1])
    for(let i=2;i<nums.length;i++){
        const cur = Math.max(p1+nums[i],p2)
        p1 = p2
        p2 = cur
    }
    return p2
};