如果你也像我一样用单调队列维护左边第一个比 hih_ihi 大的数,请注意应该取队尾而不是队首,即
while(q.size()&&q.front()<p)q.pop_front(); while(q.size()&&h[q.back()]<=h[i])q.pop_back(); int pre=q.size()?q.back():0; // 而不是q.front() q.push_back(i);