首页 > 试题广场 >

对于问题:序列1,2,3,...,n 按顺序经过一个栈, 合

[单选题]
对于问题:序列1,2,3,...,n 按顺序经过一个栈, 合法的出栈序列有几个? 现给定表达式 f[i, j] 表示有 i 个数未进栈,j个数在栈里的方案总数,那么不难得出f[n, 0] 即为问题解。下列递推式中,正确的是
  • f[i, j] = f[i - 1, j + 1] + f[i - 1, j-1]
  • f[i, j] = f[i - 1, j + 1] + f[i][j-1]
  • f[i, j] = f[i, j + 1] + f[i - 1, j-1]
  • f[i, j] = f[i, j + 1] + f[i][j-1]
当 i > 0, j > 0时,可以从当前状态执行进栈或出栈操作:
进栈操作: 一个数字从未进栈变为进栈: f[i-1,j+1]
出栈操作:一个数字从栈中出来: f[i,j-1]

因为出栈的时候,未进栈的数字是没有发生改变的。所以 i 是保持不变的
 f[i,j]=f[i−1,j+1]+f[i,j−1]
发表于 2025-11-13 14:03:17 回复(0)