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。

相关推荐
POLITE31 小时前
Leetcode 56.合并区间 JavaScript (Day 6)
算法·leetcode·职场和发展
历程里程碑1 小时前
滑动窗口秒解LeetCode字母异位词
java·c语言·开发语言·数据结构·c++·算法·leetcode
Swift社区2 小时前
LeetCode 460 - LFU 缓存
算法·leetcode·缓存
im_AMBER3 小时前
Leetcode 90 最佳观光组合
数据结构·c++·笔记·学习·算法·leetcode
POLITE34 小时前
Leetcode 3.无重复字符的最长子串 JavaScript (Day 4)
javascript·算法·leetcode
sin_hielo4 小时前
leetcode 756(枚举可填字母)
算法·leetcode
Jeremy爱编码4 小时前
leetcode热题子集
算法·leetcode·职场和发展
Tisfy4 小时前
LeetCode 756.金字塔转换矩阵:深度优先搜索
leetcode·矩阵·深度优先
努力学算法的蒟蒻5 小时前
day48(12.29)——leetcode面试经典150
算法·leetcode·面试
java修仙传5 小时前
力扣hot100:有效的括号
算法·leetcode·职场和发展