机器人走方格

机器人走方格I

http://www.nowcoder.com/questionTerminal/e8bb8e68434e42acbcdff0341f2a32c5

这应该是跳台阶的二维问题:
可以这么考虑:
图片说明
由上图可知,我们逆向分析,从左上角走到右下角和从右下角(2,2)走到左上角(1,1)是一个道理,所以我们利用上台阶的思想从右下往回分析。

我们从(2,2)回到(1,1)有两条路(2,2)-->(1,2)-->(1,1) , (2,2)-->(2,1)-->(1,1),分别标上了序号1和序号2。
也就是说从从右向左相当于x-1,从下到上相当于y-1,那么到(2,2)的方法数就相当于(1,2)的方法数+(2,1)的方法数,当x==1或者y==1的时候,就说明我们已经到了与起点(1,1)临近的几个点。

int countWays(int x, int y) {//二维的上台阶问题,代码很简单,就两行。
        if((x==1||y==1))return 1;
        return countWays(x-1,y)+countWays(x,y-1);
}
全部评论

相关推荐

Cherrycola01:0实习 0项目 约等于啥也没有啊 哥们儿这简历认真的吗
点赞 评论 收藏
分享
评论
6
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务