題目描述:給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr[i],…arr[n-1],arr[0],…,arr[j],現在請你這個acm_lover用乙個最高效的方法幫忙找出所有連續子陣列和的最大值(如果陣列中的元素全部為負數,則最大和為0,即乙個也沒有選)。
輸入:輸入包含多個測試用例,每個測試用例共有兩行,第一行是乙個整數n(1=
輸出:對於每個測試用例,請輸出子陣列和的最大值。
樣例輸入:
61 -2 3 5 -1 2
56 -1 5 4 -7
樣例輸出:
1014
#include#include#include#include#include#include#include using namespace std;
const int max = 110000 * 2;
int sum[max];
struct q q[max];
int front;
int rear;
void push(int id, int v)
}int query(int id)
if (front > rear)
return 0;
return q[front].v;
}void print_q()
int main()
for (i = 1; i <= 2 * n; i++)
sum[i] += sum[i - 1];
rear = -1;
front = 0;
push(0, 0);
int ans = 0;
for (i = 1; i <= 2 * n; i++)
printf("%d\n", ans);
} return 0;
}
首尾相連陣列的最大子陣列和
1.求0 n 1的最大子陣列和 m 1 2.求跨越 n 1和0的最大子陣列和,分別求從0開始的最大和m 21,從n 1開始的最大和m 22,分別記錄得到最大和的位置pi,pj,這裡分兩種情況考慮 a.pib.pi pj,則求0 n 1的最小子陣列和m 3,及0 n 1的和mx m max m 1,m...
首尾相連陣列的最大子陣列和
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 給定乙個由n個整數元素組成的陣列arr,陣列中有正數也有負數,這個陣列不是一般的陣列,其首尾是相連的。陣列中乙個或多個連續元素可以組成乙個子陣列,其中存在這樣的子陣列arr i arr n 1 arr 0 arr j 現在請你這...
二維陣列最大子陣列的和首尾相連
include using namespace std define n 4 void maxhe int a,int s,int jmin,int jmax int sum a 0 b a 0 x 0,y 0 int j 1 while j xif b 0 b a j n if jx j else...