使用动态规划解法:
#include <stdio.h>
#include <stdlib.h>
int MaxSum(int *nums, int len)
{
int sum = nums[0];
int n = nums[0];
for(int i=1; i < len; i++)
{
if(n > 0) n+= nums[i];
else n = nums[i];
if(sum<n) sum = n;
}
return sum;
}
int main()
{
int nums[] = {1,2,3,-1,-2,3};
int sum = MaxSum(nums, sizeof(nums)/sizeof(nums[0]));
printf("max child sum = %d \n", sum);
}
该博客展示了如何利用动态规划算法解决寻找数组中具有最大和的连续子数组问题。代码实现中定义了一个名为MaxSum的函数,通过遍历数组并比较当前子数组与前一子数组的和,来找到最大子数组的和。示例中使用了数组{1,2,3,-1,-2,3}

3986

被折叠的 条评论
为什么被折叠?



