题解 | 矩阵最长递增路径

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;
};

全部评论

相关推荐

09-22 15:45
门头沟学院 Java
谁给娃offer我给...:我也遇到了,我说只要我通过面试我就去,实际上我根本就不会去😁
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务