笔试题-01-有限制的跳台阶

笔试题-01-有限制的跳台阶

题目描述

题目来源:字节2020.09.06笔试第一题

mark

mark

思想:dp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import java.util.Scanner;

public class Main {

public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();

if(n <= 1){
System.out.println(n);
return;
}

long[][] dp = new long[n+1][2];
dp[0][0] = 0;
dp[1][0] = 1;
dp[2][1] = 1;
dp[2][0] = 1;

for(int i = 3;i <= n;i++){
dp[i][0] = dp[i - 1][0]+dp[i - 1][1];
dp[i][1] = dp[i - 2][0];
}
System.out.println(dp[n][0]+dp[n][1]);
}
}
  • 状态定义
    • dp[i][0] 表示跳一步到达台阶
    • dp[i][1]表示跳两步到达台阶

复杂度分析

  • 空间复杂度:O(N^2) dp表的空间复杂度
  • 时间复杂度:O(N^2)
打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信