zoukankan      html  css  js  c++  java
  • leetcode(62)不同路径

    不同路径

    第一种方法:

    解题思路:排列组合+数学计算

    第二种方法:

    解题思路:动态规划+自底向上

    class Solution {
        public int uniquePaths(int m, int n) {
            int[][] arrays = new int[m+1][n+1];
            for(int i=1;i<m+1;++i){
                for(int j=1;j<n+1;++j){
                    if(i==1||j==1){
                        arrays[i][j]=1;
                    }else{
                        arrays[i][j]=arrays[i-1][j]+arrays[i][j-1];
                    }
                }
            }
            return arrays[m][n];
        }
    }

     另一种思路:和第二种思路一样,但是比第二种方法空间复杂度减少

    class Solution {
        public int uniquePaths(int m, int n) {
            int min = Math.min(m,n);
            int max = Math.max(m,n);
            int[][] arrays = new int[2][min];
            int cur = 0;
            for(int i=0;i<m+n-1;++i){
                for(int j=0;j<min;++j){
                    if(i-j>=0||i-j<=max){
                        if(j==0||i-j==0){
                            arrays[cur][j]=1;
                        }else{
                            arrays[cur][j]=arrays[1-cur][j-1]+arrays[1-cur][j];
                        }
                    }
                }
                cur = 1-cur; 
            }
            return arrays[1-cur][min-1];
        }
    }
  • 相关阅读:
    工具类-vim在shell中卡死的情况
    tomcat日志分类
    逻辑运算
    牛客练习赛29 F 算式子
    牛客练习赛29 B
    查询
    hdu 5984
    zoj 4057
    zoj 4056
    zoj 4054
  • 原文地址:https://www.cnblogs.com/erdanyang/p/11247662.html
Copyright © 2011-2022 走看看