1. 程式人生 > 其它 >最大和的子陣列

最大和的子陣列

技術標籤:Leetcode資料結構演算法leetcode

最大和的子陣列

//最大和的子陣列
/*
請計算給出的陣列(至少含有一個數字)中具有最大和的子陣列(子陣列要求在原陣列中連續)
例如:給出的陣列為[−2,0,−3,4,−2,2,2,−5,4],
子陣列[−2,0,−3,4,−2,2,2,−5,4],具有最大的和:6.
*/

#include<string>
#include<vector>
#include<algorithm>
#include<iostream>
#include<memory>
using namespace
std; class Solution { public: /* *從頭開始累加,直到和為負。此時前面這段不能給後面的串帶來正收益, *應捨棄,sum清零然後在開始統計最大的sum. */ int maxSubArray(int* A, int n) { if (n == 0) return 0; int sum = 0, maxSum = A[0]; for (int i = 0; i < n; ++i) { sum += A[i]; if (maxSum < sum) maxSum = sum; if (sum < 0) sum =
0; } return maxSum; } };