首页 > 其他 > 详细

Climbing Stairs

时间:2015-03-09 10:37:52      阅读:223      评论:0      收藏:0      [点我收藏+]

爬楼梯,一次爬一层或两层,要爬n层,有几种方法

本题有一个简单的递推式:f(n)=f(n?1)+f(n?2)

注意点:

  • 注意n的边界
  • 注意不要使用递归求解,会爆栈以及浪费大量时间
  1. class Solution {
  2. public:
  3. int climbStairs(int n) {
  4. if (n < 0)
  5. return 0;
  6. if (n <= 2)
  7. return n;
  8. int a1 = 1, a2 = 2;
  9. int res = 0;
  10. for (size_t i = 3; i <= n; i++)
  11. {
  12. res = a1 + a2;
  13. a1 = a2;
  14. a2 = res;
  15. }
  16. return res;
  17. }
  18. };




Climbing Stairs

原文:http://www.cnblogs.com/flyjameschen/p/4322779.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!