320x100
문제 : leetcode.com/problems/longest-increasing-path-in-a-matrix/
N*M 정수 배열이 주어질 때, 각 셸에서 상하좌우에 위치한 셸이며 현재 셸의 수보다 높은 수를 가지는 셸로 이동가능하다.
가장 긴 경로 길이를 구하라.
DFS + DP 로 풀었다.
i번째 셀에서 상하좌우로 이동가능한 곳으로 이동하면서 이동 가능한 경로의 최장 길이를 저장하는 배열(let, dp)을 만든다.
dp[i] = min(dp[상하좌우 중 이동가능한 곳])
위 점화식을 적용하며 dp배열을 dfs로 탐색하면서 세팅한다.
dp 배열이 이미 갱신된적 있다면 새로 값을 구하지 않고 해당 값을 사용하여 시간을 줄일 수 있다.
시간복잡도, 공간복잡도 모두 O(NM).
320x100
'알고리즘 문제 > Leetcode' 카테고리의 다른 글
[Leetcode][823] Binary Trees With Factors (0) | 2021.03.14 |
---|---|
[Leetcode][160] Intersection of Two Linked Lists (0) | 2021.03.04 |
[leetcode][268] Missing Number (0) | 2021.03.03 |
[leetcode][645] Set Mismatch (0) | 2021.03.03 |
[leetcode][575] Distribute Candies (0) | 2021.03.02 |
댓글