Skip to content

Commit 5f3eef9

Browse files
authored
Update maximum-trailing-zeros-in-a-cornered-path.py
1 parent a84499c commit 5f3eef9

File tree

1 file changed

+12
-15
lines changed

1 file changed

+12
-15
lines changed

Python/maximum-trailing-zeros-in-a-cornered-path.py

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,39 +11,36 @@ def maxTrailingZeros(self, grid):
1111
:type grid: List[List[int]]
1212
:rtype: int
1313
"""
14-
def factor(x, lookup):
15-
if x not in lookup:
16-
cnt = [0]*2
17-
y = x
18-
for i, p in enumerate([2, 5]):
19-
while y and y%p == 0:
20-
y //= p
21-
cnt[i] += 1
22-
lookup[x] = cnt
23-
return lookup[x]
14+
def factor(x):
15+
cnt = [0]*2
16+
y = x
17+
for i, p in enumerate([2, 5]):
18+
while y and y%p == 0:
19+
y //= p
20+
cnt[i] += 1
21+
return cnt
2422

2523
def add(a, b):
2624
return [x+y for x, y in itertools.izip(a, b)]
2725

2826
def sub(a, b):
2927
return [x-y for x, y in itertools.izip(a, b)]
3028

31-
lookup = {}
3229
left = [[None for _ in xrange(len(grid[0]))] for _ in xrange(len(grid))]
3330
for i in xrange(len(grid)):
34-
left[i][0] = factor(grid[i][0], lookup)
31+
left[i][0] = factor(grid[i][0])
3532
for j in xrange(1, len(grid[0])):
36-
left[i][j] = add(left[i][j-1], factor(grid[i][j], lookup))
33+
left[i][j] = add(left[i][j-1], factor(grid[i][j]))
3734
result = 0
3835
for j in xrange(len(grid[0])):
3936
total = [0]*2
4037
for i in xrange(len(grid)):
41-
total = add(total, factor(grid[i][j], lookup))
38+
total = add(total, factor(grid[i][j]))
4239
up = [0]*2
4340
for i in xrange(len(grid)):
4441
right = sub(left[i][-1], left[i][j-1] if j else [0]*2)
4542
result = max(result, min(add(left[i][j], up)), min(add(right, up)))
46-
up = add(up, factor(grid[i][j], lookup))
43+
up = add(up, factor(grid[i][j]))
4744
down = sub(total, up)
4845
result = max(result, min(add(left[i][j], down)), min(add(right, down)))
4946
return result

0 commit comments

Comments
 (0)