Leetcode - 70. 爬楼梯
假设你正在爬楼梯。需要
n阶你才能到达楼顶。
每次你可以爬1或2个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定n是一个正整数。
示例 1:
输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2:
输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + 2 阶
3. 2 阶 + 1 阶
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/climbing-stairs
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解1 2021/9/9 O(n)
def climbStairs(n: int) -> int:
# 还是dp
# f(x)=f(x-1)+f(x-2)
# f(1)=1, f(2)=2
if n==1: return 1
if n==2: return 2
a=1;b=2
for x in range(3,n+1):
b=a+b
a=b-a
return b
if __name__ == '__main__':
print(climbStairs(2))
print(climbStairs(3))
print(climbStairs(4))

就这么两行,这还能更快的?

浙公网安备 33010602011771号