(HW)爬楼梯(Java)

Posted huayra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(HW)爬楼梯(Java)相关的知识,希望对你有一定的参考价值。

 1 public class test
 2 {
 3     public static void main(String[] args)
 4     {
 5         Scanner input = new Scanner(System.in);
 6         int n = input.nextInt();
 7         int k = input.nextInt();
 8         int[] dp = new int[n + 1];
 9         System.out.println(uniquePath(n, k, dp));
10     }
11     
12     //Iterative
13     public static int uniquePath(int n, int k, int[] dp)
14     {
15         //第一个位置不使用
16         //dp[1] 至 dp[k]赋值
17         for(int i = 1; i <= k; i++)
18         {
19             for(int j = 1; j < i; j++)
20                 dp[i] += dp[j];
21             dp[i]++;
22         }
23         
24         //dp[k + 1] 至 dp[n]赋值
25         for(int i = k + 1; i <= n; i++)
26             for(int j = i - k; j < i; j++)
27                 dp[i] += dp[j];
28         
29         return dp[n];
30     }
31     
32     //Recursive
33     public static int uniquePath(int n, int k, int[] dp)
34     {
35         //dp的第一个位置不使用
36         if(n <= k)
37         {
38             for(int i = 1; i < n; i++)
39             {
40                 if(dp[i] == 0)
41                     dp[i] = uniquePath(i, k, dp);
42                 dp[n] += dp[i];
43             }
44             dp[n]++;
45             return dp[n];
46         }
47         
48         for(int i = n - k; i <= n - 1; i++)
49         {
50             if(dp[i] == 0)
51                 dp[i] = uniquePath(i, k, dp);
52             dp[n] += dp[i];
53         }
54         return dp[n];
55     }
56 }

 

以上是关于(HW)爬楼梯(Java)的主要内容,如果未能解决你的问题,请参考以下文章

爬楼梯

精选力扣500题 第57题 LeetCode 70. 爬楼梯c++/java详细题解

java 70.爬楼梯(#)。java

java 70.爬楼梯(#)。java

java 70.爬楼梯(#)。java

java 70.爬楼梯(#)。java