package main import ( "fmt" "sort" ) func maxSubArray(nums []int) []int { var slice []int for j := 0; j < len(nums); j++ { // 外层for循环提供变量 var sum int for i := 0; i < j; i++ { sum = sum + nums[i] slice = append(slice, sum) } var sum2 int for k := j; k < len(nums); k++ { sum2 = sum2 + nums[k] slice = append(slice, sum2) } } return slice } func main() { /* 输入一个整型数组,数组里有正数也有负数。数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。 要求时间复杂度为O(n)。 示例1: 输入: nums = [-2,1,-3,4,-1,2,1,-5,4] 输出: 6 解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。 */ var slice = []int{-2, 1, -3, 4, -1, 2, 1, -5, 4} a := maxSubArray(slice) fmt.Println(a) sort.Ints(a) fmt.Println(a) }