281 Zigzag Iterator
Last updated
Was this helpful?
Last updated
Was this helpful?
Given two 1d vectors, implement an iterator to return their elements alternately.
For example, given two 1d vectors:
By callingnextrepeatedly untilhasNextreturnsfalse
, the order of elements returned bynextshould be:[1, 3, 2, 4, 5, 6]
.
Follow up: What if you are givenk
1d vectors? How well can your code be extended to such cases?
Clarification for the follow up question -Update (2015-09-18):
The "Zigzag" order is not clearly defined and is ambiguous fork > 2
cases. If "Zigzag" does not look right to you, replace "Zigzag" with "Cyclic". For example, given the following input:
It should return
[1,4,8,2,5,9,3,6,7]
.
思路: 用LinkedList或者Queue存每个输入list的iterator,这样就可以解决follow-up里的k 个vector的问题
时间复杂度: next(): O(1), hasNext(): O(1), 空间复杂度O(k), k是输入list的个数