Leetcode 3196. Maximize Total Cost of Alternating Subarrays

  • [Leetcode 3196. Maximize Total Cost of Alternating Subarrays](#Leetcode 3196. Maximize Total Cost of Alternating Subarrays)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题就是一个动态规划,只需要考虑每一个元素作为开始和处于序列当中的二元态即可,其中,如果处在序列当中但刚好在奇数的位置,那么两种情况刚好可以归并。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def maximumTotalCost(self, nums: List[int]) -> int:
        n = len(nums)
        
        @lru_cache(None)
        def dp(idx, stat):
            if idx >= n:
                return 0
            if stat == 0:
                return nums[idx] + dp(idx+1, 1)
            else:
                return max(nums[idx] + dp(idx+1, 1), -nums[idx] + dp(idx+1, 0))
            
        return dp(0, 0)

提交代码评测得到:耗时881ms,占用内存287.9MB。

相关推荐
-森屿安年-43 分钟前
91. 解码方法
c++·动态规划
sjsjs112 小时前
力扣3558. 给边赋权值的方案数 I
算法·leetcode·职场和发展
花间相见2 小时前
【LeetCode01】—— 无重复字符的最长子串:滑动窗口经典题详解
python·算法·leetcode
wabs6663 小时前
关于动态规划【力扣96.不同的二叉搜索树的递推公式怎么理解?】
算法·动态规划
言存4 小时前
力扣热题283 移动零
数据结构·算法·leetcode
珊瑚里的鱼4 小时前
【动态规划】买卖股票的最佳时机Ⅲ
算法·动态规划
渡之6 小时前
GeoBridge 深度解析:语义锚定多视图基础模型,重塑无人机跨视角地理定位
深度学习·算法·动态规划·无人机
洛水水6 小时前
【力扣100题】80.寻找旋转排序数组中的最小值
数据结构·算法·leetcode
洛水水6 小时前
【力扣100题】82.有效的括号
c++·算法·leetcode
legend050709ComeON7 小时前
常见面试题-leetcode
数据结构·算法·leetcode