会员专享
请先
登录,登录后可使用今日免费解锁;
开通会员,或
购买
该题目所属题库
,可解锁完整内容。
思路:单调栈+数论
对于一个值aj,当ak<aj,aj<ai(k<j,j<i)时,aj对k~i间的数组都是有贡献的。
通俗的说,对于数组[2,9,5,8,3],5仅是2和3之间的数组的最小值,其所需要贡献的连续子数组为[9,5],[5],[5,8],[9,5,8]。
也就是说,对于aj,我们需要找到它左右两边的第一个更小的值(对于5来说是2和3)。这符合单调递增栈的特点。所以我们需要维护一个单调递增栈。