码迷,mamicode.com
首页 > 其他好文 > 详细

Climbing Stairs

时间:2015-03-09 10:40:38      阅读:123      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!