To be a crazy and happy coder!

题目地址:?id=1363

此题只需验证是否为合法的出栈序列。

有两个思路:1、每个已出栈之后的数且小于此数的数都必须按降序排列。复杂度O(n^2),适合人脑。2、另一个思路就是直接模拟入栈出栈过程。虽然模拟毫无技巧可言,但复杂度O(n),优于算法1。适合电脑。

代码如下:

for(i = 0; i < N; i++){if(index < data[i]){while(index < data[i]){stack.push(++index);}stack.pop();} else if(stack != null && stack.peek().equals(new Integer(data[i]))){stack.pop();} else {flag = "No";break;}}题目只用于验证,倒不难,,不过我想问如果让求出所有合法的出栈序列该怎么求????有高效的算法吗?

年轻是胜利的一半。

To be a crazy and happy coder!

相关文章:

你感兴趣的文章:

标签云: