当前位置: 首页 > 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

相关文章:

  • 后端-redis
  • 使用idea创建JDK8的SpringBoot项目
  • k8s dashboard可视化操作界面的安装
  • StarRocks 生产部署一套集群,存储空间如何规划?
  • 代码随想录day23 | leetcode 39.组合总和 40.组合总和II 131.分割回文串
  • postman读取文件执行
  • 【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 网络爬虫教程:从入门到高级的全面指南