Golang | Leetcode Golang题解之第84题柱状图中最大的矩形

题目:

题解:

func largestRectangleArea(heights []int) int {
    n := len(heights)
    left, right := make([]int, n), make([]int, n)
    for i := 0; i < n; i++ {
        right[i] = n
    }
    mono_stack := []int{}
    for i := 0; i < n; i++ {
        for len(mono_stack) > 0 && heights[mono_stack[len(mono_stack)-1]] >= heights[i] {
            right[mono_stack[len(mono_stack)-1]] = i
            mono_stack = mono_stack[:len(mono_stack)-1]
        }
        if len(mono_stack) == 0 {
            left[i] = -1
        } else {
            left[i] = mono_stack[len(mono_stack)-1]
        }
        mono_stack = append(mono_stack, i)
    }
    ans := 0
    for i := 0; i < n; i++ {
        ans = max(ans, (right[i] - left[i] - 1) * heights[i])
    }
    return ans
}

func max(x, y int) int {
    if x > y {
        return x
    }
    return y
}

相关推荐

  1. LeetCode 84. 矩形

    2024-05-12 08:30:05       34 阅读

最近更新

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

    2024-05-12 08:30:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-12 08:30:05       101 阅读
  3. 在Django里面运行非项目文件

    2024-05-12 08:30:05       82 阅读
  4. Python语言-面向对象

    2024-05-12 08:30:05       91 阅读

热门阅读

  1. 深入探索Linux权限管理

    2024-05-12 08:30:05       26 阅读
  2. C# winform opencvsharp 识别轮廓。拟合,找到中心点

    2024-05-12 08:30:05       34 阅读
  3. 12350 安全生产举报投诉特服热线系统解决方案

    2024-05-12 08:30:05       21 阅读
  4. 自建 Spark 集群需要考虑以下几个方面的问题

    2024-05-12 08:30:05       36 阅读
  5. 生活中的网络

    2024-05-12 08:30:05       28 阅读