您的位置:首页 > 产品设计 > UI/UE

LeetCode - UniquePaths

2016-05-29 08:22 429 查看
/**

 * 问:给出一个二维矩阵,从左上角到右下角一共有多少路径?

 * 解:

 * 1、默认条件:只能往下走或往右走。

 * 2、f(i)(j) = f(i-1)(j) + f(i)(j-1)

 * 3、找到规律后,需要做的就是初始化,即i=0和j=0时对应的值。

 */

public class UniquePaths {

public int uniquePaths(int m, int n) {

// 创建二维数组结果集

int[][] result = new int[m]
;

// 做一些必要的初始化

for (int i=0; i<m; i++)

result[i][0] = 1;

for (int j=0; j<n; j++)

result[0][j] = 1;

// 根据规律找出右下角对应的路径数量

for (int i=1; i<m; i++) {

for (int j=1; j<n; j++)

result[i][j] = result[i-1][j] + result[i][j-1];

}

return result[m-1][n-1];

}

public static void main(String[] args) {

int m = 3;

int n = 3;

int num = new UniquePaths().uniquePaths(m, n);

System.out.println(m+ "*" + n + "的二维矩阵共有" + num + "种走法。");

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: