首页 > 其他分享 >Leetcode 3259. 超级饮料的最大强化能量

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

时间:2024-11-01 14:30:48浏览次数:5  
标签:3259 int max LL long 饮料 Leetcode

动态规划。

f[i][0/1]表示前i个且最后选A或B的方案的集合。

所以f[i][0]=max(f[i-1][0],f[i-2][1])+A[i]。f[i][1]同理。

 1 typedef long long LL;
 2 const int N = 1e5+10;
 3 LL f[N][2];
 4 class Solution {
 5 public:
 6     LL maxEnergyBoost(vector<int>& A, vector<int>& B) {
 7         memset(f,0,sizeof f);
 8         int n=A.size();
 9         for(int i=0;i<A.size();i++){
10             int j=i+1;
11             f[j][0]=f[j-1][0]+A[i];
12             if(j>=2)
13                 f[j][0]=max(f[j][0],f[j-2][1]+A[i]);
14 
15             f[j][1]=f[j-1][1]+B[i];
16             if(j>=2)
17                 f[j][1]=max(f[j][1],f[j-2][0]+B[i]);
18             
19         }
20         return max(f[n][0],f[n][1]);
21     }
22 };

 

标签:3259,int,max,LL,long,饮料,Leetcode
From: https://www.cnblogs.com/greenofyu/p/18520168

相关文章

  • Leetcode—624. 数组列表中的最大距离【中等】
    2024每日刷题(198)Leetcode—624.数组列表中的最大距离实现代码classSolution{public:intmaxDistance(vector<vector<int>>&arrays){intm=arrays.size();intn=arrays[0].size();intmn=arrays[0][0];intmx=ar......
  • Leetcode21:合并两个有效链表
    原题地址:.-力扣(LeetCode)题目描述将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例1:输入:l1=[1,2,4],l2=[1,3,4]输出:[1,1,2,3,4,4]示例2:输入:l1=[],l2=[]输出:[]示例3:输入:l1=[],l2=......
  • Leetcode每日一题 3216. 交换后字典序最小的字符串
    Leetcode每日一题##3216.交换后字典序最小的字符串###C++给你一个仅由数字组成的字符串s,在最多交换一次相邻且具有相同奇偶性的数字后,返回可以得到的字典序最小的字符串。如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5和9、2和4奇偶性相同,而......
  • leetcode560 和为k的子数组
    leetcode560和为k的子数组packagejava2024_10.day30;importjava.util.HashMap;publicclassleetcode560{/*思路:前缀和+哈希表a[j]-a[i]=k即a[i]=a[j]-k遍历到下标j的时候,先判a[j]==k,相等就ans++,然后查哈希表中a[j]-k的数的个数,然后把a[j]放入哈希......
  • Leetcode刷题Python之3165.不包含相邻元素的子序列的最大和
    提示:利用线段树解决不包含相邻元素的子序列最大和问题。文章目录一、题目描述示例二、解题思路1.思路分析2.线段树的状态设计3.线段树的操作三、代码实现代码详细解释四、总结时间复杂度分析一、题目描述给定一个整数数组nums和一个二维数组queries,其中q......
  • ​Leetcode 166.珠宝的最高价值​ 网格图dp C++实现
    问题:Leetcode166.珠宝的最高价值现有一个记作二维矩阵 frame 的珠宝架,其中 frame[i][j] 为该位置珠宝的价值。拿取珠宝的规则为:只能从架子的左上角开始拿珠宝每次可以移动到右侧或下侧的相邻位置到达珠宝架子的右下角时,停止拿取注意:珠宝的价值都是大于0的。除非这个......
  • LeetCode30.串联所有单词的子串
    题目链接:30.串联所有单词的子串-力扣(LeetCode)1.暴力解法(会超时)由于题目中要判断s中是否有子串符合words,于是可以定义一个hashMap来存储words中的字符串的信息;定义变量len表示words中字符串的数目,strLen表示每个字符串的长度(words中的字符串长度相同);遍历s,每次取出长为len......
  • Leetcode每日一题C之3211. 生成不含相邻零的二进制字符串
    1、执行结果:通过2、显示详情:3、题目:  给你一个正整数 n。如果一个二进制字符串 x 的所有长度为2的子字符串中包含 至少 一个 "1",则称 x 是一个 有效 字符串。返回所有长度为 n 的 有效 字符串,可以以任意顺序排列。示例1:输入: n=3输出: ["010","01......
  • Leetcode每日一题C之3216. 交换后字典序最小的字符串
     1、执行结果:通过2、显示详情:3、题目:  给你一个仅由数字组成的字符串 s,在最多交换一次 相邻 且具有相同 奇偶性 的数字后,返回可以得到的字典序最小的字符串。如果两个数字都是奇数或都是偶数,则它们具有相同的奇偶性。例如,5和9、2和4奇偶性相同,而6和9奇偶......
  • LeetCode Hot 100:多维动态规划
    LeetCodeHot100:多维动态规划62.不同路径思路1:动态规划classSolution{public:intuniquePaths(intm,intn){if(m==1||n==1)return1; //dp[i][j]:到达(i,j)的不同路径数vector<vector<int>>dp(m+1,vec......