Skip to content

Latest commit

 

History

History
35 lines (28 loc) · 838 Bytes

1793.-maximum-score-of-a-good-subarray.md

File metadata and controls

35 lines (28 loc) · 838 Bytes

1793. Maximum Score of a Good Subarray

class Solution:
    def maximumScore(self, nums: List[int], k: int) -> int:
        m = [float("inf")] * len(nums)
        minv = nums[k]
        for i in range(k - 1, -1, - 1):
            if nums[i] < minv:
                minv = nums[i]
            m[i] = minv
            
        minv = nums[k]  
        for i in range(k + 1,len(nums)):
            if nums[i] < minv:
                minv = nums[i]
            m[i] = minv
        m[k] = nums[k]
        l = 0
        r = len(nums) - 1
        ans = 0
        while l <= k <= r :
            
            if m[l] < m[r]:  
                ans = max(ans, (r - l + 1) * m[l])
                l += 1

            else :
                ans = max(ans, (r - l + 1) * m[r])
                r -= 1

            
        return ans