zoukankan      html  css  js  c++  java
  • leetcode(329)矩阵中的最大递增路径

    矩阵中的最大递增路径

    解题思路:动态规划

    class Solution {
        public int longestIncreasingPath(int[][] matrix) {
            if(matrix.length==0||matrix[0].length==0){
                return 0;
            }
            int xlen = matrix.length;
            int ylen = matrix[0].length;
            int[][][] flags = new int[xlen][ylen][2];
            for(int i=0;i<xlen;i++){
                for(int j=0;j<ylen;j++){
                    for(int k=0;k<2;k++){
                        flags[i][j][k]=1;
                    }
                }
            }
            int cur = 0;
            boolean ischange = false;
            int ans =1;
            while(true){
                ischange = false;
                for(int i=0;i<xlen;i++){
                    for(int j=0;j<ylen;j++){
                        if(i-1>=0&&matrix[i][j]>matrix[i-1][j]&&flags[i][j][1-cur]<flags[i-1][j][cur]+1){
                            flags[i][j][1-cur] = flags[i-1][j][cur]+1;
                        }
                        if(j-1>=0&&matrix[i][j]>matrix[i][j-1]&&flags[i][j][1-cur]<flags[i][j-1][cur]+1) {
                            flags[i][j][1-cur] = flags[i][j-1][cur]+1;
                        }
                        if(i+1<xlen&&matrix[i][j]>matrix[i+1][j]&&flags[i][j][1-cur]<flags[i+1][j][cur]+1) {
                            flags[i][j][1-cur] = flags[i+1][j][cur]+1;
                        }
                        if(j+1<ylen&&matrix[i][j]>matrix[i][j+1]&&flags[i][j][1-cur]<flags[i][j+1][cur]+1) {
                            flags[i][j][1-cur] = flags[i][j+1][cur]+1;
                        }
                        if(flags[i][j][1-cur]!=flags[i][j][cur]) {
                            ischange = true;
                        }
                    }
                }
                if(ischange) {
                    cur = 1-cur;
                    ans++;
                }else {
                    return ans;
                }
            }
        }
    }

     另一种方法:

    解题思路:dfs+记忆矩阵

  • 相关阅读:
    js返回上个页面再刷新
    xm-select 获取选选择的值
    接口可以跨域访问
    gitlab 版本查看
    gitlab 在linux安装环境下存储地址
    iosUILable基本使用及其所有方法
    iOS富文本字符串AttributedString具体用法
    SQL Server 开发指南
    SQL Server 数据库安全
    SQL Server 触发器
  • 原文地址:https://www.cnblogs.com/erdanyang/p/11153753.html
Copyright © 2011-2022 走看看