记忆化dfs

状态方程:st,st[i][j]:存储矩阵[i][j]开始的最长严格递减长度

int dfs(int i,int j){

    if(st[i][j]!=0) return st[i][j];

    int ma=0;

    for(int k=0;k<4;k++){

        int ni=i+dir[k][0],nj=j+dir[k][1];

        if(ni>=0 && ni<n && nj>=0 && nj<m && g[ni][nj]<g[i][j]){

            ma=max(ma,dfs(ni,nj)+1);

        }

    }

    st[i][j]=max(1,ma);

    return st[i][j];

}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务