首页 > 其他 > 详细

最大子序和

时间:2020-02-23 09:49:00      阅读:46      评论:0      收藏:0      [点我收藏+]
package main

import "fmt"

func maxSubArray(nums []int) []int {
	arr := make([]int, 1, 10)
	for h := 0; h < len(nums); h++ {
		sum := 0
		for i := h; i < len(nums); i++ {
			sum += nums[i]
			fmt.Println("sum value", sum)
			arr = append(arr, sum)

		}
	}
	return arr

}

func main() {
	/*	给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

		示例:

		输入: [-2,1,-3,4,-1,2,1,-5,4],
		输出: 6
		解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。*/

	arr := []int{-2, 1, -3, 4, -1, 2, 1, -5, 4}

	res := maxSubArray(arr)
	fmt.Println("最大值为:", res)
	for i := 0; i < len(res)-1; i++ {
		if res[i] > res[i+1] {
			res[i], res[i+1] = res[i+1], res[i]
		}
	}
	fmt.Println("最终结果:", res)
	fmt.Println(res[len(res)-1]) //6

}

  

最大子序和

原文:https://www.cnblogs.com/yzg-14/p/12348310.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!