跳到主要内容

2786.访问数组中的位置使分数最大

链接:2786.访问数组中的位置使分数最大
难度:Medium
标签:数组、动态规划
简介:请你返回你能得到的 最大 得分之和。

题解 1 - python

  • 编辑时间:2024-06-14
  • 执行用时:264ms
  • 内存消耗:31.34MB
  • 编程语言:python
  • 解法介绍:遍历时存储前面最大的奇偶值。
class Solution:
def maxScore(self, nums: List[int], x: int) -> int:
prev = [0, 0]
prev[nums[0] & 1] = nums[0]
prev[nums[0] & 1 ^ 1] = nums[0] - x
for num in nums[1:]:
v = max(prev[num & 1] + num, prev[num & 1 ^ 1] + num - x)
prev[num & 1] = max(prev[num & 1], v)
return max(prev)