Zigzag Iterator 解答
2015-10-22 08:26
375 查看
Question
Given two 1d vectors, implement an iterator to return their elements alternately.For example, given two 1d vectors:
v1 = [1, 2] v2 = [3, 4, 5, 6]
By calling next repeatedly until hasNext returns
false, the order of elements returned by next should be:
[1, 3, 2, 4, 5, 6].
Follow up: What if you are given
k1d vectors? How well can your code be extended to such cases?
Solution
This solution is suitable for k vectors.public class ZigzagIterator { private List<Iterator> list; public ZigzagIterator(List<Integer> v1, List<Integer> v2) { list = new ArrayList<Iterator>(); if (v1.iterator().hasNext()) list.add(v1.iterator()); if (v2.iterator().hasNext()) list.add(v2.iterator()); } public int next() { Iterator<Integer> current = list.remove(0); int result = current.next(); if(current.hasNext()) list.add(current); return result; } public boolean hasNext() { return list.size() > 0 ? true : false; } } /** * Your ZigzagIterator object will be instantiated and called as such: * ZigzagIterator i = new ZigzagIterator(v1, v2); * while (i.hasNext()) v[f()] = i.next(); */
相关文章推荐
- Windows 下环境变量设置(命令行)
- eclipse jsp html 格式化 format
- **LeetCode-Inorder Successor in BST
- iOS面试整理
- 【状压bfs】ctsc 1999 补丁vs错误
- sdwebimage如何获取缓存大小以及清除缓存
- HA集群之二:部署HA wordpress Cluster
- 微服务年度总结,看完这个你应该知道如何回答别人的问题了。
- mysql 不能插入中文和显示中文
- 矩阵算法 高斯消元 行列式 矩阵的秩
- 关于ExecuteNonQuery()执行成功却返回-1的问题
- 按位与运算符
- App 快速上架经验
- JSON对象长度和遍历方法-前端开发博客
- 价格改革确立时间表和路线图 六大重点领域破题
- iOS --- 音量调节视图MPVolumeView的使用
- 事件对象详解
- Iterator
- IE input file隐藏不能上传文件解决方法
- 如何从上位机或者触摸屏设定Time或S5Time值?