Day67力扣打卡

打卡记录

在这里插入图片描述


美丽塔 II(前缀和 + 单调栈)

链接

class Solution:
    def maximumSumOfHeights(self, maxHeights: List[int]) -> int:
        n = len(maxHeights)
        stack = collections.deque()
        pre, suf = [0] * n, [0] * n
        for i in range(n):
            while stack and maxHeights[stack[-1]] > maxHeights[i]:
                stack.pop()
            if not stack:
                pre[i] = (i + 1) * maxHeights[i]
            else:
                pre[i] = pre[stack[-1]] + (i - stack[-1]) * maxHeights[i]
            stack.append(i)
        ans = 0
        stack.clear()
        for i in range(n - 1, -1, -1):
            while stack and maxHeights[stack[-1]] > maxHeights[i]:
                stack.pop()
            if not stack:
                suf[i] = (n - i) * maxHeights[i]
            else:
                suf[i] = suf[stack[-1]] + (stack[-1] - i) * maxHeights[i]
            stack.append(i)
            ans = max(ans, suf[i] + pre[i] - maxHeights[i])
        return ans

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-22 04:04:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-22 04:04:05       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-22 04:04:05       87 阅读
  4. Python语言-面向对象

    2023-12-22 04:04:05       96 阅读

热门阅读

  1. Mysql的基础问题原理

    2023-12-22 04:04:05       59 阅读
  2. 灰度化、二值化、边缘检测、轮廓检测

    2023-12-22 04:04:05       59 阅读
  3. vue 响应式页面使用transform实现

    2023-12-22 04:04:05       73 阅读
  4. springboot项目0-1之mybatis

    2023-12-22 04:04:05       71 阅读
  5. Linux DISK赛题配置

    2023-12-22 04:04:05       58 阅读
  6. NVIDIA GPU日志解读

    2023-12-22 04:04:05       57 阅读
  7. C语言—每日选择题—Day58

    2023-12-22 04:04:05       65 阅读