子陣列之和最大 貪婪演算法

2021-06-22 09:35:27 字數 727 閱讀 9002

求子陣列的最大和

題目:輸入乙個整形陣列,陣列裡有正數也有負數。    //說明子陣列之最大和一定大於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,需要...