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。

相关推荐
緈福的街口4 小时前
【leetcode】347. 前k个高频元素
算法·leetcode·职场和发展
Espresso Macchiato8 小时前
Leetcode 3568. Minimum Moves to Clean the Classroom
剪枝·广度优先遍历·leetcode medium·堆排·leetcode周赛452·leetcode 3568
明月清了个风9 小时前
数据结构与算法学习笔记(Acwing 提高课)----动态规划·树形DP
笔记·学习·动态规划·树形dp
小河豚oO9 小时前
LeetCode刷题---贪心算法---944
算法·leetcode·贪心算法
Once_day9 小时前
代码训练LeetCode(23)随机访问元素
算法·leetcode
小河豚oO9 小时前
LeetCode 热题 100 - 哈希 - 128
算法·leetcode·哈希算法
客卿1239 小时前
力扣100题之128. 最长连续序列
算法·leetcode·哈希算法
T1an-19 小时前
【力扣链表篇】206.反转链表
算法·leetcode·链表
Once_day11 小时前
代码训练LeetCode(24)数组乘积
算法·leetcode
编程绿豆侠16 小时前
力扣HOT100之二分查找: 34. 在排序数组中查找元素的第一个和最后一个位置
数据结构·算法·leetcode