zoukankan      html  css  js  c++  java
  • LeetCode

    链接

    543. Diameter of Binary Tree

    题意

    爬楼梯。
    爬一个需要n步才能到顶端的楼梯。现要求每次只能走1步或2步,问有多少种方法到达顶端。

    思路

    假设step[n]代表n级台阶的答案。那么试想到达顶端前一步只有两种状态:只剩一级台阶或只剩两级台阶,那么到达这两种状态有多少种方法呢,显然是step[n-1]和step[n-2],也即step[n] = step[n-1]和step[n-2]。因此利用循环依次求出数组值即可。

    代码

    public class Solution {
        public int climbStairs(int n) {
            if (n == 0) return 0;
            if (n == 1) return 1;
            if (n == 2) return 2;
            int[] step = new int[n + 1];
            step[0] = 0;
            step[1] = 1;
            step[2] = 2;
            for (int i = 3; i < step.length; i++) {
                step[i] = step[i - 1] + step[i - 2];
            }
            return step[n];
            
        }
    }
    

    变式

    跳法不同:一次可以跳[1,n]阶。具体思路可见:https://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387

  • 相关阅读:
    springMvc接口请求参数
    ThreadLocal 结构
    遇到的问题
    jsonview的安装
    Java
    学习资源
    Java
    Java
    Java
    Java
  • 原文地址:https://www.cnblogs.com/zyoung/p/7159256.html
Copyright © 2011-2022 走看看