public class Solution {
    public int jumpFloor(int n) {
        // 预处理
        if (n == 1) return 1;
        if (n == 2) return 2;

        // 初始化起始条件
        int before2Step = 1; // 跳上第一级台阶的方法数
        int before1Step = 2; // 跳上第二级台阶的方法数
        
        // 动态规划
        int cur = -1;
        for (int i = 3; i <= n; i++) {
            // 计算到达当前台阶的方法数
            cur = before2Step + before1Step;
            // 更新数据
            before2Step = before1Step;
            before1Step = cur;
        }
        // 返回结果
        return cur;
    }
}