机器人走方格(DP/递归)
2016-07-04 20:46
330 查看
题目描述
有一个XxY的网格,一个机器人只能走格点且只能向右或向下走,要从左上角走到右下角。请设计一个算法,计算机器人有多少种走法。给定两个正整数int x,int y,请返回机器人的走法数目。保证x+y小于等于12。
测试数据:
2,2
返回值:
2DP:
public class Robot { public int countWays(int x, int y) { // write code here int dp[][]=new int[x][y]; dp[0][0] = 0;//我是从(0,0)开始的。 for(int i = 0;i < x;i ++){ dp[i][0] = 1;//因为机器人向下走,我将其都标记为一代表到这里仅仅需要一次; } for(int i = 0;i < y;i ++){ dp[0][i] = 1;//因为机器人向右走,我将其都标记为一代表到这里仅仅需要一次 } for(int i = 1;i < x;i ++){ for(int j = 1;j < y;j ++){ dp[i][j] = dp[i-1][j] + dp[i][j-1];//走到(i,j)则有上一步和左一步 } } return dp[x-1][y-1]; } }
递归:
public class Robot { public int countWays(int x, int y) { // write code here if(x==1||y==1){ return 1; } return countWays(x-1,y)+countWays(x,y-1); } }
测试网址:http://www.nowcoder.com/practice/e8bb8e68434e42acbcdff0341f2a32c5?tpId=8&tqId=11033&rp=1&ru=/ta/cracking-the-coding-interview&qru=/ta/cracking-the-coding-interview/question-ranking
相关文章推荐
- 蚁群算法实现TSP(旅行商)问题(java)
- 操作系统 单处理器进程调度模拟实验(c++)
- hdu5763 Another Meaning(kmp+dp)
- 第k个数
- MYSQLD c++函数修饰名转换工具c++filt
- SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
- SAP的吐槽来源
- SDWebImage、NSURL
- C、C++、Java
- Android齐步走-2(2016-7-1)
- 欢迎使用CSDN-markdown编辑器
- 2.2 nagios 监控客户端
- 关于libSVM的一些总结
- git合并分支,并且删除本地和远程分支
- 写JQuery插件的基本知识
- 《HTTP权威指南》——认证机制
- Hadoop异常合集(更新中~)
- block传值(二)
- Xampp套件中apache及php升级介绍
- 联想专卖店大促销(计蒜课)