Привет! Вопрос по условию задачи. Говоришь, что ни один робот не собирает вишню, если они одновременно попадают на одну клетку. В условии выхода из рекурсии тоже это прописал. Но в задании "When both robots stay in the same cell, only one takes the cherries.", т.е. из клетки вишню всё же забирает один из них, а другой уходит ни с чем. Я в своём решении это учел и оно проходит (см. current_score): class Solution: def cherryPickup(self, grid: List[List[int]]) -> int: border = len(grid[0]) @cache def helper(row, r1, r2): if row >= len(grid): return 0 else: current_score = grid[row][r1] + grid[row][r2] if r1 != r2 else grid[row][r1] next_score = max([helper(row+1, i, j) for i in range(max(r1 - 1, 0), min(r1 + 2, border)) for j in range(max(r2 - 1, 0), min(r2 + 2, border))]) return current_score + next_score return helper(0, 0, border - 1) Может у них нет testcases, где маршрут с максимальным количеством вишен лежит через общую клетку? К слову, твой код 98% по скорости и 5% по памяти, а мой 70% и 36% соответственно.
У меня исключается вариант когда они попадают на одну клетку. Эта клетка будет обработана в другом варианте, где один робот на нее попадает, а второй нет
Привет! Вопрос по условию задачи. Говоришь, что ни один робот не собирает вишню, если они одновременно попадают на одну клетку. В условии выхода из рекурсии тоже это прописал. Но в задании "When both robots stay in the same cell, only one takes the cherries.", т.е. из клетки вишню всё же забирает один из них, а другой уходит ни с чем. Я в своём решении это учел и оно проходит (см. current_score):
class Solution:
def cherryPickup(self, grid: List[List[int]]) -> int:
border = len(grid[0])
@cache
def helper(row, r1, r2):
if row >= len(grid):
return 0
else:
current_score = grid[row][r1] + grid[row][r2] if r1 != r2 else grid[row][r1]
next_score = max([helper(row+1, i, j) for i in range(max(r1 - 1, 0), min(r1 + 2, border)) for j in range(max(r2 - 1, 0), min(r2 + 2, border))])
return current_score + next_score
return helper(0, 0, border - 1)
Может у них нет testcases, где маршрут с максимальным количеством вишен лежит через общую клетку?
К слову, твой код 98% по скорости и 5% по памяти, а мой 70% и 36% соответственно.
У меня исключается вариант когда они попадают на одну клетку. Эта клетка будет обработана в другом варианте, где один робот на нее попадает, а второй нет