单调栈,楼上已经说了,左神的算法课也讲了,时间复杂度为O(n)