解法三中,采用两个栈的方式建立一个队列,其中stack支持的方法有:
1,pop()
2,push()
3,max()
其中在push()和pop()过程中需要动态修改最大值,其中采用link2NextMaxItem[]数组保存当前元素的上一级最大元素,这里需要理解其中的原理,为什么这样可以?
其中必须理解stack的特性,先进后出的性质,这样书上的操作是正确的,每次进来的数值,只和已经进栈的最大值比较,并且记录旧的最大值位置,而不用记录后面入栈的数值。
解法三中,采用两个栈的方式建立一个队列,其中stack支持的方法有:
1,pop()
2,push()
3,max()
其中在push()和pop()过程中需要动态修改最大值,其中采用link2NextMaxItem[]数组保存当前元素的上一级最大元素,这里需要理解其中的原理,为什么这样可以?
其中必须理解stack的特性,先进后出的性质,这样书上的操作是正确的,每次进来的数值,只和已经进栈的最大值比较,并且记录旧的最大值位置,而不用记录后面入栈的数值。