我正在编写自己的双端队列/双端队列程序。我似乎无法弄清楚在数组中从哪里开始。可以说我有一个大小为 6 的数组,写了一个 push 方法插入左边,一个插入右边。但是将项目推到索引 0 处并没有多大意义,因为我必须立即处理环绕。
经过一番研究,我发现如果我有一个空数组,那么第一项会被推到数组的中间,这取决于我想将元素推到数组左侧还是右侧的位置,最好是从中间工作?我只是想知道这是否是要走的路。
最佳答案
据我了解,您可以循环使用该数组。存储两个整数,存储开始索引和结束索引;并移动它们而不是移动数组中的元素。当你到达任一端时,只需换到另一端继续(在计算中使用 % length
)。通过这种方式,您可以从任何地方开始,而无需移动元素。有点像Circular Buffers .
关于java - 双端队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22106907/