Leetcode: Zigzag Iterator
来源:互联网 发布:java中数组特点 编辑:程序博客网 时间:2024/06/05 01:05
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 k 1d vectors? How well can your code be extended to such cases?
Hide Tags Design
Hide Similar Problems (M) Binary Search Tree Iterator (M) Flatten 2D Vector
My Solution
class ZigzagIterator(object): def __init__(self, v1, v2): """ Initialize your data structure here. :type v1: List[int] :type v2: List[int] """ self.v1, self.v2 = v1, v2 self.ind1, self.ind2 = 0,0 self.flag = 1 def next(self): """ :rtype: int """ if self.hasNext(): if self.ind1==len(self.v1) and self.ind2!=len(self.v2): res = self.v2[self.ind2] self.ind2 += 1 elif self.ind2==len(self.v2) and self.ind1!=len(self.v1): res = self.v1[self.ind1] self.ind1 += 1 else: if self.flag==1: res = self.v1[self.ind1] self.ind1 += 1 self.flag = 2 else: res = self.v2[self.ind2] self.ind2 += 1 self.flag = 1 return res def hasNext(self): """ :rtype: bool """ if self.ind1==len(self.v1) and self.ind2==len(self.v2): return False else: return True# Your ZigzagIterator object will be instantiated and called as such:# i, v = ZigzagIterator(v1, v2), []# while i.hasNext(): v.append(i.next())
0 0
- Leetcode: Zigzag Iterator
- leetcode 281: 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
- [刷题]Sort Colors II
- 关于phpMail无法发送邮件问题
- .NET基础--if-else与swirch的区别
- 记录一些UIScrollView的代理方法
- 双向链表的实现
- Leetcode: Zigzag Iterator
- IOS AFNetworking https
- WebRTC
- Android代码优化(一)
- mysql主从配置常用命令
- pom.xml配置文件详解
- 剑指 offer:跳台阶
- 我发现我最不敢面对的是我自己
- 【iOS】Swift中扩展extension与协议protocol