class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 递增路径的最大长度
* @param matrix int整型vector<vector<>> 描述矩阵的每个数
* @return int整型
*/
int fun(vector<vector<int> >& matrix,int m,int n,int v) {
v = v + 1;
bool k1=true,k2=true,k3=true,k4=true;
if(m > 0 && matrix[m][n] < matrix[m-1][n]){
fun(matrix,m-1,n,v);
} else{
k1=false;
}
if(m < matrix.size()-1 && matrix[m][n] < matrix[m+1][n]){
fun(matrix,m+1,n,v);
}else{
k2=false;
}
if(n > 0 && matrix[m][n] < matrix[m][n-1]){
fun(matrix,m,n-1,v);
}else{
k3=false;
}
if(n < matrix[0].size()-1 && matrix[m][n] < matrix[m][n+1]){
fun(matrix,m,n+1,v);
}else{
k4=false;
}
if(k1==false && k2==false && k3==false && k4==false){
if(v > m_v){
m_v = v;
}
return 0;
}
return 0;
}
int solve(vector<vector<int> >& matrix) {
// write code here
int m = matrix.size()-1;
int n = matrix[0].size()-1;
for(int i = 0;i <= m ;i++){
for(int j=0;j<=n;j++){
fun(matrix,i,j,0);
}
}
return m_v;
}
int m_v = 0;
};