Files
obsidian/АиСД/Задачи/LeetCode/Zigzag Iterator.md
T
roma-dxunvrs f57762fd3b Init
2026-09-03 21:40:46 +03:00

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(); }
}
```