动态规划java代码范例
时间: 2024-07-09 18:01:01 浏览: 86
Java通用范例开发金典源代码
动态规划是一种常用的算法设计技术,通常用于解决具有重叠子问题和最优子结构的问题。在Java中,我们可以用递归或迭代的方式来编写动态规划代码。这里有一个简单的斐波那契数列求解的动态规划例子:
```java
public class DynamicProgrammingExample {
public static int fib(int n) {
// 创建一个长度为n+1的数组来存储中间结果
int[] dp = new int[n + 1];
// 声明第一个两个元素
dp = 0;
dp = 1;
// 使用循环从第二个元素开始计算并填充dp数组
for (int i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2]; // 递推公式:F(n) = F(n-1) + F(n-2)
}
// 返回第n个斐波那契数
return dp[n];
}
public static void main(String[] args) {
int num = 10;
System.out.println("The " + num + "th Fibonacci number is: " + fib(num));
}
}
```
在这个例子中,`fib()`方法实现了斐波那契数列的动态规划解决方案,避免了重复计算,提高了效率。
阅读全文