爬楼梯
1. LeetCode 70. Climbling Stairs
2. 描述:
假设你正在爬楼梯,楼梯共有n个台阶。 每次只能向上爬一个或两个台阶,那么总共有多少种不同的方式可以到达楼梯顶部。
3. 解题思路:
假设现在爬到了第i阶楼梯,那么此时有两种可能可以到达该台阶:
- 在第i-1阶台阶处,爬了1个台阶
- 在第i-2阶台阶处,爬了2个台阶 因此用 D[i]表示到达第i阶台阶的不同方式的话,可以很容易地得出: D[i] = D[i-1] + D[i-2];
4. 解决方案:
int climbStairs(int n) { vector<int> nums(n+1,0); nums[0] = 1; nums[1] = 1; for(int i = 2; i <= n; i++){ nums[i] = nums[i-1] + nums[i-2]; } return nums[n]; }