题解 | #滑雪#
滑雪
https://www.nowcoder.com/practice/36d613e0d7c84a9ba3af3ab0047a35e0
借鉴别的语言的大佬的代码写的python
def dfs(n, m, arr, dp, row, col): # up if row - 1 >= 0 and row - 1 < n and arr[row][col] > arr[row - 1][col]: dfs(n, m, arr, dp, row - 1, col) dp[row][col] = max(dp[row - 1][col] + 1, dp[row][col]) # down if row + 1 >= 0 and row + 1 < n and arr[row][col] > arr[row + 1][col]: dfs(n, m, arr, dp, row + 1, col) dp[row][col] = max(dp[row + 1][col] + 1, dp[row][col]) # left if col - 1 >= 0 and col - 1 < m and arr[row][col] > arr[row][col - 1]: dfs(n, m, arr, dp, row, col - 1) dp[row][col] = max(dp[row][col - 1] + 1, dp[row][col]) # right if col + 1 >= 0 and col + 1 < m and arr[row][col] > arr[row][col + 1]: dfs(n, m, arr, dp, row, col + 1) dp[row][col] = max(dp[row][col + 1] + 1, dp[row][col]) def maxlen(arr, n, m): dp = [[1] * m for i in range(n)] mm = 1 for i in range(n): for j in range(m): dfs(n, m, arr, dp, i, j) mm = max(mm, dp[i][j]) return mm # input N, M = map(int, input().split()) hrr = list() for i in range(N): hrr.append(list(map(int, input().split()))) print(maxlen(hrr, N, M))