在Java中,有iter.remove()
方法。
当我在LinkedList中进行迭代时删除时,它具有时间复杂性的优点。
考试代码:
B = [[4,1],[4,2]]
list = [[1,2,3,4,5] , ... , [5,2,3,5,2]]
for(int i = 0; i < l; i++) {
for(Iterator<List<Integer>> iter = list.iterator(); iter.hasNext();) {
List<Integer> out = iter.next();
if(Math.min(out.get(0), out.get(2)) <= B[i][0] && B[i][0] <= Math.max(out.get(0), out.get(2))) {
iter.remove();
if(max < out.get(4)) {
max = out.get(4);
}
}
}
System.out.println(max);
}
在此代码中,时间复杂度为O(n)。因为它是链表并且在删除时使用迭代器
所以我想在python中实现此代码。但我在python中找不到iter.remove()
。只能使用FP,双端队列(也需要花费n ^ 2的时间)和list.remove(value)
..才能在python中实现吗?
答案 0 :(得分:0)
FWIW,Python的deque.remove()和list.remove()均为O(n)。