70. 爬楼梯
/**
* Copyright (C), 2018-2020
* FileName: 爬楼梯的基础题
* Author: xjl
* Date: 2020/9/7 9:39
* Description:
*/
package 深度优先广度优先问题;
public class 爬楼梯的基础题 {
/**
* 使用的递归的方法 使用的是暴力的求解
*
* @param n
* @return
*/
public int climbstairs(int n) {
if (n == 1 || n == 2) {
return n;
}
return climbstairs(n - 1) + climbstairs(n - 2);
}
/**
* 记忆化递归的思想
*
* @param n
* @return
*/
public int solution(int n) {
//这个是记忆的数组 记录是的每一个台阶的方法
int[] memeo = new int[n + 1];
return climbstairs1(n, memeo);
}
private int climbstairs1(int n, int[] memeo) {
if (memeo[n] > 0) {
return memeo[n];
}
if (n == 1 || n == 2) {
memeo[n] = n;
} else {
memeo[n] = climbstairs1(n - 1, memeo) + climbstairs1(n - 2, memeo);
}
return memeo[n];
}
/**
* 使用动态规划的思想
*
* @param n
* @return
*/
public int solution1(int n) {
if (n == 1) {
return 1;
}
//表示的是的dp[]的转态 表示的有多少种方法
int[] dp = new int[n + 1];
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?