首页 > 试题广场 >

求一个数组中连续子向量的最大和

[问答题]
求一个数组中连续子向量的最大和
定义一个sum用于保存累加和,sum初始值为0,每次累加数组的第i个数,如果sum小于0了,就说明之前的总和会对之后的加和起到副作用,这时直接把sum置零。以下是代码实现 int max_sum(vector<int>& vec) { if(vec.size() <= 0) { return (1 << 31); } int max = vec[0]; int sum = 0; for(int i = 1; i <= vec.size()-1 ; i++) { sum = sum + vec[i]; max = sum > max ? sum :max ; if(sum < 0) { sum = 0; } } return max; }</int>
发表于 2019-03-11 15:55:00 回复(0)