当前位置: 首页 > article >正文

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

力扣刷题记录

动态规划

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

思路

这题先进行模拟,发现还是存在一些问题

看了题解之后使用动态规划求解问题

每一次求解,都和前一次的选择有关,是否进行选择

定义三个常量,滚动遍历一轮即可计算

代码
class Solution:
    def maxEnergyBoost(self, energyDrinkA: List[int], energyDrinkB: List[int]) -> int:
        # 不同的起点
        # startA, startB = energyDrinkA[0], energyDrinkB[0]
        # n = len(energyDrinkA)

        # def cal(flag, res):
        #     i = 1
        #     while i < n - 1:
        #         print(i)
        #         if flag == 'A':
        #             if energyDrinkA[i] >= energyDrinkB[i+1]:
        #                 res += energyDrinkA[i]
                        
        #                 if i + 1 == n - 1:
        #                     res += energyDrinkA[i + 1]                  
        #             else:
        #                 res += energyDrinkB[i+1]            
        #                 i = i + 1
        #                 flag = 'B'
        #         else:
        #             if energyDrinkB[i] >= energyDrinkA[i+1]:
        #                 res += energyDrinkB[i]            
        #                 if i + 1 == n - 1:
        #                     res += energyDrinkB[i + 1]
                        
        #             else:
        #                 res += energyDrinkA[i+1]
                    
        #                 i = i + 1
        #                 flag = 'A'
        #         i += 1
        #     return res
        # startA = cal('A', energyDrinkA[0])
        # startB = cal('B', energyDrinkB[0])
        # print(startA)
        # print(startB)
        # sumA = sum(energyDrinkA)
        # sumB = sum(energyDrinkB)
        # return max(max(max(startA, startB), sumA), sumB)

        dp = [0] * 3
        n = len(energyDrinkA)
        for i in range(n):
            dp[0] = max(dp[0] + energyDrinkA[i], dp[1])
            dp[1] = max(dp[1] + energyDrinkB[i], dp[2])
            dp[2] = dp[0]

        return max(dp[0], dp[1])


        

时间复杂度:O(n)
空间复杂度:O(1)


http://www.kler.cn/a/375525.html

相关文章:

  • 位运算算法及习题 ,丢弃的数字 , 两整数之和 ,只出现一次的数字II
  • Docker | 将本地项目发布到阿里云的实现流程
  • CSS ——相关链接制作
  • 黑马软件测试第二篇_功能测试
  • 【STM32】SD卡
  • 3D人体建模的前沿探索:细数主流模型与技术进展
  • 【AI人工智能】给GPT一个英文文档,让它进行翻译,总结。
  • linux图形化X窗口
  • 商品详情API接口系列(json数据示例演示)
  • Lucene的使用方法与Luke工具(2)
  • 基于redis实现延迟队列
  • 【Docker项目实战】使用Docker安装Blossom 笔记应用
  • 【LangChain系列4】【Chain模块详解】
  • 【2025最新整理】ResNet 系列网络的演进及其创新
  • lanqiaoOJ 3255:重新排队 ← STL list 单链表
  • 【贪心算法】(第十三篇)
  • Linux---cp命令
  • 【p2p、分布式,区块链笔记 Torrent】WebTorrent 的lt_donthave插件
  • 软件测试学习笔记丨Flask操作数据库-数据库和表的管理
  • MySQL utf8mb3 和 utf8mb4引发的问题
  • 前端八股文第七篇
  • .net core NPOI以及NOPI mapper
  • HTML的总结作业
  • 简单的kafkaredis学习之kafka
  • 5G(NR)无线协议层二的RLC子层
  • Python 网络爬虫教程:从入门到高级的全面指南