码迷,mamicode.com
首页 > 编程语言 > 详细

[LeetCode]题解(python):070-Climbing Stairs

时间:2015-12-14 18:09:48      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

题目来源:

  https://leetcode.com/problems/climbing-stairs/


 

题意分析:

  爬楼梯,一次可以爬一步或者两步。如果要爬n层,问一共有多少种爬法。比如说,如果是3层,可以有[[1,1,1],[1,2],[2,1]]共3种方法。


 

题目思路:

  这是一个典型的动态规划问题。n层的方法数 = n - 1层的方法数 + n - 2层的方法数。


 

代码(Python):

  

技术分享
 1 class Solution(object):
 2     def climbStairs(self, n):
 3         """
 4         :type n: int
 5         :rtype: int
 6         """
 7         if n == 1 or n == 0:
 8             return 1
 9         i,tmp1,tmp2 = 2,1,1
10         while i <= n:
11             tmp1 = tmp1 + tmp2
12             if i == n:
13                 return tmp1
14             i += 1
15             tmp2 = tmp1 + tmp2
16             if i == n:
17                 return tmp2
18             i += 1
View Code

 


 

转载请注明出处:http://www.cnblogs.com/chruny/p/5045540.html

[LeetCode]题解(python):070-Climbing Stairs

标签:

原文地址:http://www.cnblogs.com/chruny/p/5045540.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!