陣列中最大子陣列之和

2022-08-10 16:24:23 字數 1008 閱讀 1376

乙個有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,並記錄最大位置i,再從頭往尾掃瞄,找出最大值m2, 並記錄最大位置j,若i>j,則比較m1+m2與max,求出最大值,若i<=j,則令m = a[0]+a[1]+a[2]+...a[n-1],求出m和max之間的最大值。

int maxsum4(int *a, int n,int &beg,int &end)

if(n==1)

return a[0];

int pos = 0;

int cursum = a[0];

int maxsum = a[0];

for(int i = 1; i

}int pos1 = 0,max1 = a[0];

cursum = a[0]; 

for(int i = 1;i<=n-1;++i)

}cursum = a[n-1];

int pos2 = n-1, max2 = a[n-1];

for(int j = n-2; j>=0; --j)

}int sum = 0;

if(pos1>=pos2)

else

for(int j = n-1; j>=pos2; --j)

}int temp = maxsum>sum?maxsum:sum;

if(maxsum==temp)

beg = ++pos;

return maxsum;

}else

else

return sum;

}return maxsum>sum?maxsum:sum;

}

陣列中最大子陣列之和

一 目的 熟悉程式設計風格 自學簡單 python 簡單效能測試 二 程式設計 1 測試工具及注意事項 使用visual studio 2017進行編譯,求陣列中最大陣列之和。注意 1.題目說的是子陣列是連續的 2.題目只要求和,不需要返回陣列的具體位置 3.陣列的元素是整數 2 單元測試配置過程 ...

陣列中最大子陣列之和

採用暴力破解法 三重for迴圈找出所有子陣列進行對比 def maxsubarray array maxsum 0 for i in range 0,len array for j in range i,len array sum 0 for k in range i,j 1 sum sum arr...

陣列中最大子陣列之和

一.編寫程式 1.求陣列中最大子陣列之和 class max out object defmaxmarry lis dp lis 0 i 1 for num in lis 1 if dp i 1 0 else i 1 return max dp 演算法實現 建立乙個新的陣列,該陣列有乙個值為所求陣列...