27 lines
792 B
Markdown
27 lines
792 B
Markdown
Leetcode #281 | #Medium | [[Очередь]]
|
|
## Идея
|
|
Либо очередь хода, либо очередь итераторов
|
|
## [[Big-O]]
|
|
- Время ```O(1)```
|
|
- Память ```O(K)```
|
|
K - количество векторов (в данной задаче - 2)
|
|
## Код
|
|
```Java
|
|
public class ZigzagIterator {
|
|
private Queue<Iterator<Integer>> q = new ArrayDeque<>();
|
|
|
|
public ZigzagIterator(List<Integer> v1, List<Integer> v2) {
|
|
if (!v1.isEmpty()) q.offer(v1.iterator());
|
|
if (!v2.isEmpty()) q.offer(v2.iterator());
|
|
}
|
|
|
|
public int next() {
|
|
Iterator<Integer> it = q.poll();
|
|
int val = it.next();
|
|
if (it.hasNext()) q.offer(it);
|
|
return val;
|
|
}
|
|
|
|
public boolean hasNext() { return !q.isEmpty(); }
|
|
}
|
|
``` |