leetcode 281: Zigzag Iterator
来源:互联网 发布:汤普森2016总决赛数据 编辑:程序博客网 时间:2024/06/08 19:27
Zigzag Iterator
Total Accepted: 964 Total Submissions: 2714 Difficulty: Medium
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 bynext should be: [1, 3, 2, 4, 5, 6]
.
Follow up: What if you are given k
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 for k > 2
cases. If "Zigzag" does not look right to you, replace "Zigzag" with "Cyclic". For example, given the following input:
[1,2,3][4,5,6,7][8,9]It should return
[1,4,8,2,5,9,3,6,7]
.[思路]
iterator都放到一个list里, 用一个count循环,
[CODE]
public class ZigzagIterator { List<Iterator<Integer> > iters = new ArrayList<Iterator<Integer> >(); int count = 0; public ZigzagIterator(List<Integer> v1, List<Integer> v2) { if( !v1.isEmpty() ) iters.add(v1.iterator()); if( !v2.isEmpty() ) iters.add(v2.iterator()); } public int next() { int x = iters.get(count).next(); if(!iters.get(count).hasNext()) iters.remove(count); else count++; if(iters.size()!=0) count %= iters.size(); return x; } public boolean hasNext() { return !iters.isEmpty(); }}/** * Your ZigzagIterator object will be instantiated and called as such: * ZigzagIterator i = new ZigzagIterator(v1, v2); * while (i.hasNext()) v[f()] = i.next(); */
0 0
- leetcode 281: Zigzag Iterator
- Leetcode: Zigzag Iterator
- *LeetCode-Zigzag Iterator
- LeetCode 281. Zigzag Iterator
- Leetcode Zigzag Iterator
- LeetCode 271. Zigzag Iterator
- LeetCode 题解(272) : Zigzag Iterator
- [leetcode] 281. Zigzag Iterator 解题报告
- LeetCode 281. Zigzag Iterator(之字形迭代器)
- [Leetcode] 281. Zigzag Iterator 解题报告
- Zigzag Iterator
- Zigzag Iterator
- Zigzag Iterator
- Zigzag Iterator
- [LeetCode281]Zigzag Iterator
- [leetcode281]Zigzag Iterator
- #540 Zigzag Iterator
- #541 Zigzag Iterator II
- 图像滤镜艺术---图像滤镜晕影调节算法研究
- static的理解
- 如何在Mac上安装IntelliJ IDEA
- ubuntu 安装chrome及给chromium 安装 flash player
- PHP内置数组函数详解(1)
- leetcode 281: Zigzag Iterator
- javascript 表单和表单元素
- CLRS 13.2旋转
- Android开发笔记---Android控件
- 《C++primer(第五版)》学习之路-第十一章:关联容器
- ubuntu 安装qq
- c++primer plus第十四章-多重继承、模板类
- ACE入门(二)配置文件
- 优秀之前,别谈人脉!