注意:
- 请记得 重置 在 Vector2D 中声明的类变量(静态变量),因为类变量会 在多个测试用例中保持不变,影响判题准确。请 查阅 这里。
- 你可以假定
next()的调用总是合法的,即当next()被调用时,二维向量总是存在至少一个后续元素。
Vector2D iterator = new Vector2D([[1,2],[3],[4]]);
iterator.next(); // 返回 1
iterator.next(); // 返回 2
iterator.next(); // 返回 3
iterator.hasNext(); // 返回 true
iterator.hasNext(); // 返回 true
iterator.next(); // 返回 4
iterator.hasNext(); // 返回 false
`
class Vector2D(object):
def __init__(self, vec2d):
"""
Initialize your data structure here.
:type vec2d: List[List[int]]
"""
self.vecCounter = 0
self.listCounter = 0
self.vector = [v for v in vec2d if len(v) > 0]
def next(self):
"""
:rtype: int
"""
res = self.vector[self.vecCounter][self.listCounter]
if self.listCounter == len(self.vector[self.vecCounter]) - 1:
self.listCounter = 0
self.vecCounter += 1
else:
self.listCounter += 1
return res
def hasNext(self):
"""
:rtype: bool
"""
return len(self.vector) > self.vecCounter
# Your Vector2D object will be instantiated and called as such:
vector =[
[1,2],
[3],
[4,5,6]
]
i, v = Vector2D(vector), []
while i.hasNext(): v.append(i.next())
print(v)
`