题目描述:
* 请编写一个函数(允许增加子函数),计算n x m的棋盘格子(n为横向的格子数,m为竖向的格子数)沿着各自边缘线从左上
* 角走到右下角,总共有多少种走法,要求不能走回头路,即:只能往右和往下走,不能往左和往上走。
例如: 2x2的格式,总共有以下6种走法:
要求:
1、用程序方式实现
2、传入n和m的值,计算出有多少种走法。
3、当传入非法数据时,返回-1。
* 计算出nxm个宫格从左上解走到右下角,总共有多少种走法,不允许走回头路,即:
* 只能往右走和往下走,不能往上和往左走。
* @param n : 横向的格子数;m: 竖向的格子数
* @return :返回走法个数。
*/
测试用例:n=2,m=2时,result=4 n=6,m=2时,result=28
public long getLatticePaths(int n, int m) {
//TODO: Please add your code here!
if(n <= 0 || m <=0){
return -1;
}else if(n == 1 && m >=1){
return m+1;
}else if((m == 1 && n >=1)){
return n+1;
}else{
return getLatticePaths(n - 1, m) + getLatticePaths(n, m - 1);
}
}