You are climbing a stair case. It takes n steps to reach to the top. Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
题目意思 : n步到达,每次可以走一步或两步 , 有多少种走法!
题目思路 : 当你最后一步走 一步的时候,对应着的 == W(n - 1) , 当你走两步 , == W(n - 2);
W(n) = W(n - 1) + W(n - 2)
子问题就是 当n 分别等于 1 , 2 , 3, 4 , ...... n - 1时对应的方法数。
public class Solution { public int climbStairs(int n) { int[] ways = new int[n]; if (n <= 0) return 0; ways[0] = 1; if (n >= 2) ways[1] = 2; else return ways[0]; for (int i = 2; i < n ; i++) { ways[i] = ways[i - 1] + ways[i - 2]; } return ways[n - 1]; } }
相关推荐
c++ C++_leetcode题解之746. Min Cost Climbing Stairs.cpp
Carimus编码问题代码function climbingStairs(stairs: number) { if (stairs <= 2) return stairs; return climbingStairs(stairs - 1) + climbingStairs(stairs - 2); } function climbingStairsDriver(stairs: ...
c语言入门 c语言_leetcode题解之0070_climbing_stairs
javascript js_leetcode题解之70-climbing-stairs.js
c c语言_leetcode题解之0070_climbing_stairs.zip
《走楼梯问题——LeetCode中的Climbing Stairs》 在计算机科学和算法设计中,LeetCode是一个广受欢迎的在线平台,它提供了大量的编程题目,帮助开发者锻炼和提升编程技能。"走楼梯"(Climbing Stairs)是其中一道...
1. **Min Cost Climbing Stairs** (最小成本爬楼梯) 问题描述:有若干个台阶,每次可以爬1阶或2阶,求达到顶部的最小成本。这是一个典型的动态规划问题,状态转移方程为`dp[i] = min(dp[i-1], dp[i-2]) + cost[i]`...
Min Cost Climbing Stairs [746]2. Best Time to Buy and Sell Stock [121]3. Climbing Stairs [70]4. Maximum Subarray [53]5. House Robber [198]6. Range Sum Query - Immutable [303]7. Counting Bits [338]8. ...
本压缩包文件“c++-c++编程基础之leetcode题解第70题爬楼梯.zip”显然是针对LeetCode的第70题——"Climbing Stairs"(爬楼梯)的解决方案。这道题目属于动态规划问题,是C++初学者到进阶者常常会遇到的经典算法题。 ...
1. **Climbing Stairs**:模拟爬楼梯问题,可以通过递归或动态规划解决,计算到达楼梯顶部的不同方式数量。 递归实现的常见示例有斐波那契数列和阶乘计算: - **斐波那契数列**:`f(n) = f(n-1) + f(n-2)`,递归...
**1.5 爬楼梯 (Climbing Stairs)** 爬楼梯问题是一个经典的动态规划问题。假设每次可以爬1步或2步,求到达第n步的不同方法数。可以创建一个动态规划数组dp,其中dp[i]表示到达第i步的方法数。dp[i]可以通过dp[i-1]...
Stairs](./leetcode/动态规划-Climbing Stairs.java) [动态规划-Decode Ways](./leetcode/动态规划-Decode Ways.java) [动态规划-Distinct Subsequences](./leetcode/动态规划-Distinct Subsequences.java) [动态...
4. **动态规划**:动态规划是一种用于求解最优化问题的策略,如"爬楼梯"(Climbing Stairs)和"最长连续序列"(Longest Consecutive Sequence)。通过构建状态转移方程,我们可以用递归或迭代的方式求解问题。 5. *...
6. **ClimbingStairs.java**:这个文件名可能代表一个与斐波那契数列相关的问题,比如“爬楼梯”问题。在这个问题中,一个人要爬n阶楼梯,每次可以爬1阶或2阶,问有多少种不同的爬法。这个问题可以通过斐波那契数列...
- Climbing Stairs(爬楼梯) - Unique Paths(不同路径) 11. Binary Search(二分查找): 二分查找是一种在有序数组中查找特定元素的搜索算法。文件中出现的二分查找相关题目包括: - Search Insert Position...
12. 爬楼梯( Climbing Stairs):通过动态规划解决递推问题,可以采用记忆化搜索优化。 13. 罗马数字转整数(Roman to Integer):解析罗马数字,注意特殊规则的处理。 14. 最长公共前缀(Longest Common Prefix...
1. **爬楼梯(Climbing Stairs)**:使用动态规划的思想,计算出爬楼梯的不同方法总数。 2. **不同路径(Unique Paths)**:给定一个机器人位于一个m x n网格的左上角,求出到达网格右下角的不同路径数量。 ### 二...
Stairs).md](Java基础/数据结构与算法/LeetCode/LeetCode 70. 爬楼梯(Climbing Stairs).md) 7月3号 java 异常详解 7月2号 整理基础算法 7月1号 七月 6月30号 6月29号 6月25号 6月22号 Redis中String、List、Hash...
- "爬楼梯"(Climbing Stairs)可以使用动态规划来找到可能的上楼梯方法数。 - "不同路径"(Unique Paths)和"不同路径 II"(Unique Paths II)同样是关于路径计算的动态规划问题。 **二分搜索(Binary Search)** ...