golang求連續子數組的最大和

問題描述:
給定一個數組 array[1, 4, -5, 9, 8, 3, -6],在這個數字中有多個子數組,子數組和最大的應該是:[9, 8, 3],輸出20,再比如數組爲[1, -2, 3, 10, -4, 7, 2, -5],和最大的子數組爲[3, 10, -4, 7, 2],輸出18。
代碼如下:

package main

import (
	"fmt"
)

func getMaxSum(arr []int) int {
	var sum, maxSum int
	for i := 0; i < len(arr); i++ {
		sum = 0
		for j := i; j < len(arr); j++ {
			sum += arr[j]
			if sum > maxSum {
				maxSum = sum
			}
		}
	}
	return maxSum
}
func main() {
	var arr []int
	arr = []int{1, -2, 3, 10, -4, 7, 2, -5}
	fmt.Println(getMaxSum(arr))
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章