有一个整数数组{1,2,3,-1,-3,2,5},我的工作是打印导致子数组最大和的元素,所获得的和是通过将非相邻元素相加而得出的在数组中。
我使用动态编程编写了给出最大和的代码。但无法打印元素。
public static int maxSum(int arr[])
{
int excl = 0;
int incl = arr[0];
for (int i = 1; i < arr.length; i++)
{
int temp = incl;
incl = Math.max(Math.max(excl + arr[i], arr[i]), incl);
excl = temp;
}
return incl;
}
Run Code Online (Sandbox Code Playgroud)
例子 :
{1,2,3,-1,-3,2,5}应该返回,{1,3,5}因为最大和为9{4,5,4,3} 有两个 {4,4}和{5,3},对两个数组进行排序{4,4},{3,5}由于3 <4,所以我们打印{3,5}。(包含第一个最小元素的数组)。