一个栈的入栈序列为1,2,3,...,n ,其出栈序列是 p 1 ,p 2 ,p 3 ,...p n 。若p 2 = 3,则 p 3 可能取值的个数是()
n-3
n-2
n-1
无法确定
答案:C ( n - 1)个
看了别人的一些解析,觉得不够完善,下面给出自己的见解。
首先,栈的先进后出原则大家应该是知道的。
根据题意 p 2 = 3,可以知道 p 1 的可能情况有三种:1,2 或 4 。(看到有些人只想到了 1,2)
为啥这样想呢?这里估计还有一个关键是要考虑到 n 的大小。
当 n = 3 时, p 2 = 3 的话,那么 p 1 有两种情况 1 和 2 。
如果 p 1 = 1 , 那么 p 3 = 2 ; 如果 p 1 = 2 ,那么 p 3 = 1 ; 此时的话我们就可以看到 p 3 只有两种可能 1 或者 2 (n - 1)个。
此时的话我们就可以看到 p 3 只有两种可能 1 或者 2 (n - 1)个。
当 n > 3 时: p 2 = 3 的话,那么 p 1 有三种情况 1 , 2 和 4 。
如果 p 1 = 1 , 那么 p 3 = 2,4,5,... n (n - 2)个 如果 p 1 = 2 ,那么 p 3 = 1,4,5,... n (n - 2)个 如果 p 1 = 4 ,那么 p 3 = 2,5,6,... n (n - 3)个 此时的话我们就可以看到 p 3 的情况有 1,2,4,5,... n (n - 1)个。
此时的话我们就可以看到 p 3 的情况有 1,2,4,5,... n (n - 1)个。
综上所述就是 p 3 可能取值的个数是 (n - 1)个。
少考虑的一种情况。。。。
第二个出栈的是3的话,可能有几种情况:
综上,除了3以外的所有数都可能取到,是n-1
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
答案:C ( n - 1)个
看了别人的一些解析,觉得不够完善,下面给出自己的见解。
首先,栈的先进后出原则大家应该是知道的。
根据题意 p 2 = 3,可以知道 p 1 的可能情况有三种:1,2 或 4 。(看到有些人只想到了 1,2)
为啥这样想呢?这里估计还有一个关键是要考虑到 n 的大小。
当 n = 3 时, p 2 = 3 的话,那么 p 1 有两种情况 1 和 2 。
当 n > 3 时: p 2 = 3 的话,那么 p 1 有三种情况 1 , 2 和 4 。
综上所述就是 p 3 可能取值的个数是 (n - 1)个。