先把题目抽象一下: 有一个静态的数组,求有多少个区间[i,j]满足:j-i==max{ai,...,aj}-min{ai,...,aj} 也就是要求max-min+i-j==0的区间数 所以肿么做呢? 首先枚举i(这里倒着做,比较好理解),维护以i为开头的所有区间 相当于每次要在一坨区间的最前面同时加一个元素(并且增加一个仅含有ai的区间[i,i]) 然后很惊喜的发现实际上对于这一坨区间的权值(max-min+i-j)只有以下几个操作: 1.同时-1,因为i减小了1 2.改max(这个一定只有有…