Longest Increasing Path in a Matrix
来源:互联网 发布:东莞市住宅成交数据 编辑:程序博客网 时间:2024/05/16 14:42
DFS问题,遍历每个点并且取其最大值;在遍历过程中应该,避免重复遍历,应该设置path[2][4]为每个点为起始点的最长路径长度,初始化为0,如果被遍历过不为0,则返回,否则进行遍历。
class Solution {public: int longestIncreasingPath(vector<vector<int>>& matrix) { int maxway=0; int m=matrix.size(); if(m==0) return 0; int n=matrix[0].size(); vector<vector<int>> way(m, vector<int>(n, 0)); int path[2][4]={{0,1,0,-1},{1,0,-1,0}}; for(int i=0;i<m;i++) for(int j=0;j<n;j++){ maxway=max(maxway,dfs(i,j,matrix,way,n,m,path)); } return maxway; } int dfs(int x,int y,vector<vector<int>>& matrix,vector<vector<int>>& way,int n,int m,int path[][4] ){ int lx,ly; if(way[x][y]) return way[x][y]; for(int i=0;i<4;i++){ lx=x+path[0][i]; ly=y+path[1][i]; if(lx<m&&ly<n&&lx>=0&&ly>=0&&matrix[x][y]<matrix[lx][ly]) way[x][y]=max(way[x][y],dfs(lx,ly,matrix,way,n,m,path)); } return ++way[x][y]; }};
0 0
- leetcode Longest Increasing Path in a Matrix
- 329. Longest Increasing Path in a Matrix
- [LeetCode] Longest Increasing Path in a Matrix
- Longest Increasing Path in a Matrix
- leetcode: Longest Increasing Path in a Matrix
- Leetcode: Longest Increasing Path in a Matrix
- Longest Increasing Path in a Matrix
- leetcode:Longest Increasing Path in a Matrix
- [LeetCode]Longest Increasing Path in a Matrix
- [Leetcode]Longest Increasing Path in a Matrix
- 329. Longest Increasing Path in a Matrix
- Longest Increasing Path in a Matrix
- Longest Increasing Path in a Matrix | leetcode
- LeetCode Longest Increasing Path in a Matrix
- 【Leetcode】Longest Increasing Path in a Matrix
- LeetCode:Longest Increasing Path in a Matrix
- 329. Longest Increasing Path in a Matrix
- 329. Longest Increasing Path in a Matrix
- 23. Merge k Sorted Lists
- php字符串处理函数(上)
- [Python for Data Analysis] Python Basic--Function
- python 使用requests第三方库自动登陆新浪微博
- linux给普通用户添加root权限
- Longest Increasing Path in a Matrix
- 细数JDK里的设计模式(转)
- Java 多线程
- 1018. 锤子剪刀布
- Java的多线程之基础篇
- c#之剪刀石头布
- c#之剪刀石头布
- c#之剪刀石头布
- get与post提交方式的区别