leetcode 3259.超级饮料的最大强化能量

思路:dp

这里的dp方程其实很简单,题目中已经给出了,要么就是相邻的最大能量+当前的能量值,要么就是下一种饮料隔开一瓶饮料的最大能量值+当前能量值,取最大值即可。

注意:这里额外要注意的是,如果选择一行一行的进行dp递归,产生的结果不一定对,因为如果只是针对一种饮料的出发进行处理的话,另一种饮料的最大能量就没有赋值了;所以,我们需要对这两个饮料同时进行递归才有效。

不要忘记初始化res数组,让第一个饮料都赋值。

复制代码
class Solution {
    public long maxEnergyBoost(int[] energyDrinkA, int[] energyDrinkB) {
        long [][]res=new long[2][energyDrinkB.length];
        res[0][0]=energyDrinkA[0];
        res[1][0]=energyDrinkB[0];
        for(int i=1;i<energyDrinkA.length;i++){
            if(i-2>=0){
                res[0][i]=Math.max(res[1][i-2]+energyDrinkA[i],res[0][i-1]+energyDrinkA[i]);
                res[1][i]=Math.max(res[0][i-2]+energyDrinkB[i],res[1][i-1]+energyDrinkB[i]);
            }
            else{
                res[0][i]=res[0][i-1]+energyDrinkA[i];
                res[1][i]=res[1][i-1]+energyDrinkB[i];
            }
        }
        return (long)Math.max(res[0][energyDrinkA.length-1],res[1][energyDrinkB.length-1]);
    }
}
相关推荐
Kuo-Teng3 分钟前
LeetCode 160: Intersection of Two Linked Lists
java·算法·leetcode·职场和发展
fie888921 分钟前
基于MATLAB的狼群算法实现
开发语言·算法·matlab
偷偷的卷42 分钟前
【算法笔记 11】贪心策略六
笔记·算法
ZPC82101 小时前
FPGA 部署ONNX
人工智能·python·算法·机器人
_w_z_j_1 小时前
爱丽丝的人偶
算法
老前端的功夫2 小时前
Vue2中key的深度解析:Diff算法的性能优化之道
前端·javascript·vue.js·算法·性能优化
想要打 Acm 的小周同学呀3 小时前
爬虫相关的面试问题
爬虫·selenium·职场和发展
yongui478343 小时前
基于深度随机森林(Deep Forest)的分类算法实现
算法·随机森林·分类
是苏浙3 小时前
零基础入门C语言之C语言实现数据结构之单链表经典算法
c语言·开发语言·数据结构·算法
橘颂TA3 小时前
【剑斩OFFER】算法的暴力美学——点名
数据结构·算法·leetcode·c/c++