
									 Problem
								
								
									 Solution
								
								
									 Submissions
								
								
							Longest Increasing Path
								Certification: Advanced Level
								Accuracy: 0%
								Submissions: 0
								Points: 15
							
							Write a C program to find the length of the longest increasing path in a matrix. You can move in four directions (up, down, left, right) from each cell. You cannot move diagonally or outside the matrix boundaries. An increasing path means each cell value must be strictly greater than the previous cell value.
Example 1
- Input: matrix = [[9,9,4],[6,6,8],[2,1,1]]
- Output: 4
- Explanation: 
 Step 1: The longest increasing path is [1, 2, 6, 9]
 Step 2: Path: (2,1) -> (2,0) -> (1,0) -> (0,0)
 Step 3: Values: 1 -> 2 -> 6 -> 9 (strictly increasing)
 Step 4: Length = 4
Example 2
- Input: matrix = [[3,4,5],[3,2,6],[2,2,1]]
- Output: 4
- Explanation: 
 Step 1: The longest increasing path is [3, 4, 5, 6]
 Step 2: Path: (0,0) -> (0,1) -> (0,2) -> (1,2)
 Step 3: Values: 3 -> 4 -> 5 -> 6 (strictly increasing)
 Step 4: Length = 4
Constraints
- 1 ≤ matrix.length, matrix[i].length ≤ 200
- 0 ≤ matrix[i][j] ≤ 2^31 - 1
- You must find the longest strictly increasing path
- Time Complexity: O(m * n)
- Space Complexity: O(m * n)
Editorial
									
												
My Submissions
										All Solutions
									| Lang | Status | Date | Code | 
|---|---|---|---|
| You do not have any submissions for this problem. | |||
| User | Lang | Status | Date | Code | 
|---|---|---|---|---|
| No submissions found. | ||||
Solution Hints
- Use dynamic programming with memoization to avoid recalculating paths
- For each cell, try all four directions and find the maximum path length
- Use DFS (Depth-First Search) with memoization to explore all possible paths
- A cell's longest path is 1 + maximum of its valid neighbors' longest paths
- Create a memoization table to store computed results for each cell
- Only move to a cell if its value is strictly greater than current cell
