码迷,mamicode.com
首页 > 编程语言 > 详细

(HW)爬楼梯(Java)

时间:2019-05-26 17:56:04      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:ring   pat   main   string   iter   for   楼梯   ret   div   

 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)

标签:ring   pat   main   string   iter   for   楼梯   ret   div   

原文地址:https://www.cnblogs.com/Huayra/p/10926588.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!