Leetcode # 2786. Visit Array Positions to Maximize Score

https://leetcode.com/contest/biweekly-contest-109/problems/visit-array-positions-to-maximize-score/

Solution

Time Complexity: O(len(nums))
Space Complexity: O(1)
(The input and output generally do not count towards the space complexity.)

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

 

Last Updated on 2023/08/16 by A1go

目錄

目錄
Bitnami