Visit Array Positions to Maximize Score

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from typing import List

class Solution:
    def maxScore(self, nums: List[int], x: int) -> int:
        eve = nums[0] - (x if nums[0] % 2 else 0)
        odd = nums[0] - (0 if nums[0] % 2 else x)
        for i in range(1, len(nums)):
            if nums[i] % 2:
                odd = nums[i] + max(odd, eve - x)
            else:
                eve = nums[i] + max(eve, odd - x)
        return max(eve, odd)