我最近参加了一个竞赛,我被问到这个问题.给定一个长度为数组的数组,使用所有长度可以制作最大矩形的面积.可以添加长度,但不能间断.
示例:
[ 4,2,4,4,6,8 ]给定此数组,我们所能做的最好是制作一个像8和6这样的矩形.

给出8*6 = 48的面积.
我是一个初学者,即使经过长时间的努力思考如何做到这一点,我也无法到达任何地方.我不是在寻找解决方案,但任何能够在正确的方向上推动我的线索都将受到赞赏.
TIA
编辑:有人指出(评论已删除),很难用解释来解释解决方案,而不是发布一些代码.如有必要,请发布代码.
我有两个 goroutine,如下面的代码片段所示。我想同步它们,这样当一个返回时,另一个也应该退出。实现这一目标的最佳方法是什么?
func main() {
go func() {
...
if err != nil {
return
}
}()
go func() {
...
if err != nil {
return
}
}()
}
Run Code Online (Sandbox Code Playgroud)
我在这里模拟了这个场景https://play.golang.org/p/IqawStXt7rt并试图用一个通道来解决它来表示例程已经完成。这看起来可能是对关闭通道的写入导致恐慌。解决这个问题的最佳方法是什么?