这道题的正解是 单调栈,但是我们用朴素解法 向左暴力扫描 也能在考试时拿到一定的分数。
题意:对每个下标 i,它的美好值是左边最近的、满足 a[j]≤a[i] 的 a[j];若没有则为 0。求所有位置美好值之和。
朴素做法:对每个 i,从 i−1 往左扫,遇到第一个 ≤a[i] 的数就停下,把它累加到答案里。
n 较小时 O(n2) 可通过;当 n 接近 105 时会超时,需要后面的单调栈做法。
给一定一个数组,每个位置的美好值是离该位置最近的且下标小于该位置,值小于等于该值的值,若没有则为0。求所有位置的美好值总和。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.