美文网首页
Go算法——最大子数组问题

Go算法——最大子数组问题

作者: ProgrammingGuy | 来源:发表于2020-02-12 17:41 被阅读0次
package main

import (
    "fmt"
    "math"
)

func findMaxCrossingSubarray(array []int, l, m, h int) (lb, hb, _ int) {
    sum := 0
    lsum, rsum := math.MinInt64, math.MinInt64
    for i := m; i >= l; i-- {
        sum += array[i]
        if sum > lsum {
            lsum = sum
            lb = i
        }
    }
    sum = 0
    for i := m + 1; i <= h; i++ {
        sum += array[i]
        if sum > rsum {
            rsum = sum
            hb = i
        }
    }
    return lb, hb, lsum + rsum
}

func findMaxSubarray(array []int, l, h int) (_, _, _ int) {
    if l == h {
        return l, h, array[l]
    }
    m := (l + h) / 2
    ll, lh, lsum := findMaxSubarray(array, l, m)
    hl, hh, hsum := findMaxSubarray(array, m+1, h)
    cl, ch, csum := findMaxCrossingSubarray(array, l, m, h)
    if lsum >= hsum && lsum >= csum {
        return ll, lh, lsum
    }
    if hsum >= lsum && hsum >= csum {
        return hl, hh, hsum
    }
    return cl, ch, csum
}

func main() {
    arr := []int{13, -3, -25, 20, -3, -16, -23, 18, 20, -7, 12, -5, -22, 15, -4, 7}
    fmt.Println(arr)
    fmt.Println(findMaxSubarray(arr, 0, len(arr)-1))
}

相关文章

  • 10《算法入门教程》分治算法之最大子数组问题

    1. 前言 本节内容是分治算法系列之一:最大子数组问题,主要讲解了什么是最大子数组问题,如何利用分治算法解决最大子...

  • Go算法——最大子数组问题

  • 2018-05-24

    算法导论,分治算法,最大子数组问题。python ,代码抄袭,Dacixie的博客--https://blog.c...

  • 动态规划法(八)最大子数组问题(maximum subarray

    问题简介   本文将介绍计算机算法中的经典问题——最大子数组问题(maximum subarray problem...

  • 最大子数组问题

    最近在看算法导论,看到计算最大子数组问题,于是写了一个iOS版本的。 利用分治策略,逐层寻找 最大子数组存在三种情...

  • Leetcode-Medium 152. Maximum Pro

    题目描述 给定一个整数数组nums(有正有负),求最大子数组乘积 思路 求最大子数组乘积问题是求最大子数组之和演变...

  • 分治法 2

    最大字数组问题 暴力解法 算法基本过程:遍历数组元素,以每一个数组元素为最大子数组第一个元素寻找子数组。 时间复杂...

  • 2018-05-27

    继续 算法导论 最大子数组问题,线性时间,这次把索引,也计算出来 思路和代码,抄袭 https://www.cn...

  • 算法导论4.1.5:线性查找最大子数组问题

    原题:使用如下思想为最大子数组问题设计一个非递归的、线性时间的算法。从数组的左边界开始,由左至右处理,记录到目前为...

  • 动态规划

    求最大子数组,最大子乘积

网友评论

      本文标题:Go算法——最大子数组问题

      本文链接:https://www.haomeiwen.com/subject/hepcfhtx.html