标签:== for ++ math n+1 arrays div || bsp
不同路径
第一种方法:
解题思路:排列组合+数学计算
第二种方法:
解题思路:动态规划+自底向上
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]; } }
标签:== for ++ math n+1 arrays div || bsp
原文地址:https://www.cnblogs.com/erdanyang/p/11247662.html