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。

相关推荐
夏乌_Wx22 分钟前
练题100天——DAY23:存在重复元素Ⅰ Ⅱ+两数之和
数据结构·算法·leetcode
Espresso Macchiato5 小时前
Leetcode 3767. Maximize Points After Choosing K Tasks
leetcode medium·leetcode双周赛171·leetcode 3767
ada7_6 小时前
LeetCode(python)108.将有序数组转换为二叉搜索树
数据结构·python·算法·leetcode
Espresso Macchiato6 小时前
Leetcode 3765. Complete Prime Number
leetcode medium·leetcode双周赛171·leetcode 3765
独自破碎E6 小时前
加油站环路问题
java·开发语言·算法·leetcode
Swift社区7 小时前
LeetCode 445 - 两数相加 II
算法·leetcode·职场和发展
墨染点香7 小时前
LeetCode 刷题【187. 重复的DNA序列】
算法·leetcode·职场和发展
2401_841495648 小时前
【LeetCode刷题】最大子数组和
数据结构·python·算法·leetcode·动态规划·最大值·最大子数组和
鹿角片ljp8 小时前
力扣101.判断对称二叉树-推荐掌握递归
算法·leetcode·职场和发展