使用C语言完成: 给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值。当所给的整数均为负数时定义子段和为0,依此定义,所求的最优值为: Max{0,a[i]+a[i+1]+…+a[j]},1<=i<=j<=n 例如,当(a[1],a[2],a[3],a...
解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 核心思想 从头一个数一个数的加,并记录最大和,考虑到最大子段和的任何子段和都不会为负,所以累加到负数则抛弃目前的累加,重新开始累加。 代码 int maxSubArray(int* nums, int numsSize){ #nums 为数组指针,numSize为数组长度 int f = 0 ;#用于...
本文实例讲述了C语言求连续最大子数组和的方法,是非常实用的技巧。分享给大家供大家参考。 具体实现方法如下: #include <iostream> using namespace std; int array = 1, -2, 3, 10, -4, 7, 2, -5; //int array = -10, -1, -2, -3, -4, -5; const int size = sizeof array / sizeof...