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。

相关推荐
爱coding的橙子3 分钟前
每日算法刷题计划Day7 5.15:leetcode滑动窗口4道题,用时1h
算法·leetcode
阳洞洞31 分钟前
leetcode 56. 合并区间
leetcode
小刘不想改BUG1 小时前
LeetCode LCR 015. 找到字符串中所有字母异位词 (Java)
linux·算法·leetcode
Musennn6 小时前
leetcode 15.三数之和 思路分析
算法·leetcode·职场和发展
MarkHard12312 小时前
Leetcode (力扣)做题记录 hot100(62,64,287,108)
算法·leetcode·职场和发展
一只鱼^_12 小时前
牛客练习赛138(首篇万字题解???)
数据结构·c++·算法·贪心算法·动态规划·广度优先·图搜索算法
小羊在奋斗16 小时前
【LeetCode 热题 100】反转链表 / 回文链表 / 有序链表转换二叉搜索树 / LRU 缓存
算法·leetcode·链表
爱上彩虹c16 小时前
LeetCode Hot100 (1/100)
算法·leetcode·职场和发展
小雅痞19 小时前
[Java][Leetcode simple]26. 删除有序数组中的重复项
java·leetcode