动态规划求解机器人有多少种可能的路径
public class HelloWorld {public int unquePaths(int m,int n) {int [][]=new int[m][n]int i ,j;for(i=0;i<m;i++){for(j=0;j<n;j++){if(i==0||j==0){f[i][j]=1;}else{f[i][j]=f[i-1][j]+f[i][j-1];}.
·
public class HelloWorld {
public int unquePaths(int m,int n) {
int [][]=new int[m][n]
int i ,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++){
if(i==0||j==0){
f[i][j]=1;
}
else{
f[i][j]=f[i-1][j]+f[i][j-1];
}
}
return f[m-1][n-1];
}
1 确定状态即最后一步为 f[i-1][j-1]
化成子问题 f[i-2][j-1], f[i-1][j-2]
2 转移方程
f[i][j]=f[i-1][j]+f[i][j-1]
3 初始条件和边界情况
初始条件 f[0][0]=1
边界情况:i=0或j=0,则前一步只能有一个方向过来 f[i][j]=1
4 计算顺序
计算第0行,计算第1行,计算第m-1行 答案是f[m-1][n-1]
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)