表示之前还不会这种类型怎么快速求值。。。
\(Solution 1\)
我们可以维护一个单调栈,使得\(h\)是递增的。
每次到一个位置,删到前面第一个比它小的位置,记作\(k\),然后最长的高度为\(h[i]\)的区间就是\([k+1,i]\)。
正着来一遍,再倒着来一遍即可。
表示之前还不会这种类型怎么快速求值。。。
我们可以维护一个单调栈,使得\(h\)是递增的。
每次到一个位置,删到前面第一个比它小的位置,记作\(k\),然后最长的高度为\(h[i]\)的区间就是\([k+1,i]\)。
正着来一遍,再倒着来一遍即可。