出栈序列的统计

有n个数1,2,3,...,n依次进栈,问说出栈的种类数,

一直就想不明白怎么得到的递推式f(n)=f(0)*f(n-1)+f(1)*f(n-2)+...+f(n-1)*f(0),

同时还有一个问题,就是check一个序列是否是一个合法的出栈序列,

当然最简单的方法就是用一个栈去模拟,然而需要占用O(n)的空间,

这里有没有O(1)空间的方法来check呢,

最后需要做的check貌似就是查找是否存在i<j<k使得aj<ak<ai,

想了好久还是没想到方法,

有谁知道的可以告诉我哈。

原文地址:https://www.cnblogs.com/litstrong/p/3347387.html