求子陣列的最大和
題目:輸入乙個整形陣列,陣列裡有正數也有負數。 //說明子陣列之最大和一定大於0
陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。
求所有子陣列的和的最大值。要求時間複雜度為o(n)。
例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,
因此輸出為該子陣列的和18。
answer:
keep current sum, slide from left to right, when sum < 0, reset sum to 0.
#include #include #include using namespace std;
int maxarray(int a, int size, vector&vec)
else if(sum < 0)
}for(i=beg;i<=end;i++)
vec.push_back(a[i]);
return max;
}int main()
; int size = sizeof(a)/sizeof(a[0]);
int max = maxarray(a,size,vec);
cout<::iterator iter = vec.begin(); iter != vec.end(); iter++)
cout<<*iter<
陣列中最大的子陣列之和
乙個有n個整數元素的一維陣列 a 0 a 1 a n 1 求子陣列之和的最大值。例子 1,2,3,5,3,2 返回 8 0,2,3,5,1,2 返回 9 9,2,3,5,3 返回 2 需要注意的是,如果考慮到陣列首尾相連,則 1 先按不相連計算出最大值max 2 從尾往頭掃瞄,找出最大值m1,並記錄...
演算法 求陣列的子陣列之和的最大值
乙個一維int陣列,這個陣列有很多子陣列,那麼子陣列之和的最大值是什麼呢?思考 1 題目說的子陣列是連續的 2 題目只需要求和,並不需要返回子陣列的具體位置 3 陣列的元素是整數,所以陣列可能包含有正整數 零 負整數 舉幾個例子 陣列 1,2,3,5,3,2 應返回 8 陣列 0,2,3,5,1,2...
子陣列之和的最大值
給定乙個陣列,查詢這個陣列的子陣列的最大和 比如 2,5,3,6,4,8,6 輸出最大和8 分析 假設已經找到乙個子陣列的最大和,這個子陣列是從陣列索引i到索引j。可以用如下式子描述,cur max a i j 對於下乙個數,也就是索引為j 1,這個最大和是否 將a j 1 加入cur max,需要...