forked from shuboc/LeetCode-2
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflatten-2d-vector.py
More file actions
32 lines (27 loc) · 795 Bytes
/
flatten-2d-vector.py
File metadata and controls
32 lines (27 loc) · 795 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# Time: O(1)
# Space: O(1)
class Vector2D:
x, y = 0, 0
vec = None
# Initialize your data structure here.
# @param {integer[][]} vec2d
def __init__(self, vec2d):
self.vec = vec2d
self.x = 0
if self.x != len(self.vec):
self.y = 0
self.adjustNextIter()
# @return {integer}
def next(self):
ret = self.vec[self.x][self.y]
self.y += 1
self.adjustNextIter()
return ret
# @return {boolean}
def hasNext(self):
return self.x != len(self.vec) and self.y != len(self.vec[self.x])
def adjustNextIter(self):
while self.x != len(self.vec) and self.y == len(self.vec[self.x]):
self.x += 1
if self.x != len(self.vec):
self.y = 0