简单动态规划问题的分析
有一个数组arr【7】={1,2,4,1,7,8,3},求不相邻数字的最大值。
动态规划从最后一个算起,设取每个下标的解opt,一个数有两种情况,选或不选,如下图所示
在这里插入代码片public class Onejava {
public static void main(String args[])
{int[] arr= {1,2,4,1,7,8,3};
int sum=dp_opt(arr);
System.out.println(sum);
}
public static int max(int a,int b)
{if(a>b)
return a;
else
return b;
}
public static int dp_opt(int arr[]) //非递归
{int[] opt=new int[7];
opt[0]=arr[0];
opt[1]=max(arr[0], arr[1]);
for(int j=2;j


