这题实际上是一个单调栈的应用,但还是比较巧妙的。
虽然问的是“互相看见”,但如果 i 和
直接枚举,复杂度显然是 O(n2) 的。期望得分为 40%。但如果采用了“考虑前面”的思想方法,会对后面的解题方法有所帮助理解。
体会一下单调队列的性质,可以认为,大致表现为下图:
对于中间比较低的部分,在后面红色入队的时候就要被迫出队了,因为红色比它高。形象化地想象一下,这像不像题目中所述的“挡住”?
而在本题中,没有对于区间的限制,只是计数问题。因此可以认为就是一
这题实际上是一个单调栈的应用,但还是比较巧妙的。
虽然问的是“互相看见”,但如果 i 和
直接枚举,复杂度显然是 O(n2) 的。期望得分为 40%。但如果采用了“考虑前面”的思想方法,会对后面的解题方法有所帮助理解。
体会一下单调队列的性质,可以认为,大致表现为下图:
对于中间比较低的部分,在后面红色入队的时候就要被迫出队了,因为红色比它高。形象化地想象一下,这像不像题目中所述的“挡住”?
而在本题中,没有对于区间的限制,只是计数问题。因此可以认为就是一