題目描述:
作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機構(gòu),我們在業(yè)內(nèi)良好的客戶口碑。創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計、成都網(wǎng)站制作、成都做網(wǎng)站、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價值。一個有 n 個元素的數(shù)組,這 n 個元素既可以是正數(shù)也可以是負數(shù),數(shù)組中連續(xù)
的一個或多個元素可以組成一個連續(xù)的子數(shù)組,一個數(shù)組可能有多個這種連續(xù)的子數(shù)組,求子數(shù)組的大值。例如,對于數(shù)組 [1,-2,4,8,-4,7,-1,-5] 而言,其大和的子數(shù)組為 [4,8,-4,7],大值為 15。
方法:
1.蠻力法
找出所有的子數(shù)組,然后求出子數(shù)組的和,在所有子數(shù)組的和中取大值。
代碼實現(xiàn):
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2020/1/29 21:59 # @Author : buu # @Software: PyCharm # @Blog :https://blog.csdn.net/weixin_44321080 def maxSubArrSum(arr): if arr == None or len(arr) <= 0: print('參數(shù)不合理!') return thisSum = 0 maxSum = 0 i = 0 while i < len(arr): j = i while j < len(arr):# j 控制連續(xù)子數(shù)組包含的元素個數(shù) thisSum = 0 k = i # k 表示連續(xù)子數(shù)組開始的下標 while k < j: thisSum += arr[k] k += 1 if thisSum > maxSum: maxSum = thisSum j += 1 i += 1 return maxSum if __name__ == '__main__': arr = [1, -2, 4, 8, -4, 7, -1, -5] print('1 max sub array sum:', maxSubArrSum(arr))