已知进栈序列,求所有出栈序列||已知出栈序列求所有的入栈序列

这题写错了:

下面是错的
已知出栈序列求所有的入栈序列头条实习一面的算法题,当时没有想出来,事后想起来求出栈序列的所有入栈序列和求进栈序列的所有出栈序列其实答案是一样的,所以只要按照求进栈序列的所有出栈序列来算就行了。
why?
A序列 进栈 -> B序列
那么
B序列 进栈必然可以得到 -> A序列
然后用dfs就可以了,巧妙的很。

public class AllPopSeq {
   
    @Test
    public void test() {
   
        //已知进栈序列,求出栈序列||已知出栈序列求所有的入栈序列
        //典型的卡特兰数
        // C(n) = (2n)!/((n+1)!*n!)  n = 4 C(n) = 14
        LinkedList<LinkedList<Integer>> linkedLists = allPopSeq(new int[]{
   4, 3, 2, 1});
        System.out.println(linkedLists.size());
        linkedLists.forEach((l) -> {
   
            System
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值