gpt4 book ai didi

algorithm - 快速检索中间元素的数据结构

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:52:37 25 4
gpt4 key购买 nike

我需要解决一个可以左右插入的问题。然后从数组中间的数据中提取。

我已经尝试使用链表来解决这个问题。然而,这种方法太慢而无法被接受为解决方案。

如果我需要在列表的开头和结尾快速插入以及快速检索中间元素,您建议我使用什么数据结构?

这是我已经尝试过的代码:

private static void middleQueue(int loopLength, String[] commandsArray) {

LinkedList<String> linkedList = new LinkedList<>();

int counterSize = 0;

for (int i = 0; i < commandsArray.length; i++) {
if(commandsArray[i].equals("R")){
linkedList.add(commandsArray[i+1]);
i++;
counterSize++;
}
else if(commandsArray[i].equals("L")){
linkedList.addFirst(commandsArray[i+1]);
i++;
counterSize++;
}
else if(commandsArray[i].equals("E")){
if((linkedList.size() & 1) == 0)
System.out.println(linkedList.remove((counterSize / 2)-1));
else
System.out.println(linkedList.remove((counterSize / 2)));

counterSize--;
}
}
}

最佳答案

取3个指针first, middle, last指针。那么有2种情况:

  1. 如果你首先添加答。您需要将中间指针移动到左侧,然后移动到当前位置。

  2. 如果你从最后添加答。您只需要将中间指针增加到它的下一个。

关于algorithm - 快速检索中间元素的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com