题目:给定一个数字序列,寻找其中各元素相加和最大的子数组

 /*
寻找最大子数组go语言实现
*/ package main import fmt "fmt" func main() {
/*
需要查找的数组
*/
A:=[]int{-,,-,-,,,}
low:=
high:=len(A)-
sum:=
low,high,sum=find_max_array(A,,len(A)-)
/*
返回数组边界
*/
fmt.Println(low," ",high," ",sum)
}
/*
返回越过中间点的最大数组
*/
func Find_max_acrossing(Array []int,low int,mid int,high int)(int,int,int) {
/*
现设定左最小值,寻找左边最小数组边界
*/
left_sum:=-
sum:=
max_left:=mid
for i := mid; i>=low; i-- {
sum+=Array[i]
if sum>left_sum {
left_sum=sum
max_left=i
}
} /*
现设定右最小值,寻找右边最小数组边界
*/
right_sum:=-
sum=
max_right:=mid+
for i := mid+; i <=high; i++ {
sum+=Array[i]
if sum>right_sum {
right_sum=sum
max_right=i
}
}
return max_left,max_right,left_sum+right_sum
} func find_max_array(Array []int,low int,high int)(int,int,int){
max_left:=low
max_right:=high
sum:=
if low==high {
max_left=low
max_right=high
sum=Array[high]
}else{
mid:=
if (high-low+)%== {
mid=(high+low-)/
}else{
mid=(high+low)/
} max_left_low:=low
max_left_high:=mid
left_sum:=
max_left_low,max_left_high,left_sum=find_max_array(Array,low,mid) max_right_low:=mid+
max_right_high:=high
right_sum:=
max_right_low,max_right_high,right_sum=find_max_array(Array,mid+,high) max_across_low:=low
max_across_high:=high
across_sum:=
max_across_low,max_across_high,across_sum=Find_max_acrossing(Array,low,mid,high) if left_sum>right_sum && left_sum>across_sum{
max_left=max_left_low
max_right=max_left_high
sum=left_sum
}else if right_sum>left_sum && right_sum>across_sum {
max_left=max_right_low
max_right=max_right_high
sum=right_sum
}else if across_sum>left_sum && across_sum>right_sum {
max_left=max_across_low
max_right=max_across_high
sum=across_sum
}
}
return max_left,max_right,sum
}

go语言实现寻找最大子数组的更多相关文章

  1. Java 数组中寻找最大子数组

    程序设计思想: 依次将数组划分开,先判断一个元素的单个数组大小,接下来两个,依次上升,最后将所得结果进行比较赋值,输出最大结果. 1 package ketangTest; //张生辉,康治家 201 ...

  2. homework-01 "最大子数组之和"的问题求解过程

    写在前面:我的算法能力很弱,并且也是第一次写博文,总之希望自己能在这次的课程中学到很多贴近实践的东西吧. 1.这次的程序是python写的,这也算是我第一次正正经经地拿python来写东西,结果上来说 ...

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

    问题简介   本文将介绍计算机算法中的经典问题--最大子数组问题(maximum subarray problem).所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续子数组.比如 ...

  4. CLRS最大子数组问题

    今天我们一起来看一下关于最大子数组的一些问题.最大子数组的应用场景可以是这样的:有一天,你搞了一场投资开始炒股,这时你就会想,我怎样才能获得最大的利润呢,最简单的想法就是我在股票的最低价时买入,然后在 ...

  5. 对"一维最大子数组和"问题的思考(homework-01)

    一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考题,在<编程之美>一书中同时阐述了一维数组和二维数组的讨论.本篇博客 ...

  6. 对"一维最大子数组和"问题的思考

    对"一维最大子数组和"问题的思考(homework-01) 一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考 ...

  7. 4月25日课上练习 一维数组最大子数组(debug版)

    一维数组中求最大子数组的算法 package com.wangwang.mar; import java.util.Scanner; public class Sum { public static ...

  8. Java课程课后作业190309之连续最大子数组

    老师在课堂是提出了这个问题,并且提出了时间复杂度是O(n)的要求,一开始我自己思想简单,在逻辑上出现了十分粗心的错误,后来同学们也在课堂上比较激烈地讨论了一番,也只是将时间复杂度降到了O(n*n),在 ...

  9. [PHP]算法-最大子数组问题思路

    最大子数组问题,股票价格示例: 1.在最高价格开始向左寻找之前的最低价格 2.在最低价格开始向右寻找之后的最高价格 3.暴力求解法,尝试每队可能的买进和卖出组合,保证卖出在买进之后 key buy s ...

随机推荐

  1. 来看看CBIS 2017中国(上海)大数据产业创新峰会有哪些大师出席

    CBIS 2017中国(上海)大数据产业创新峰会,围绕"数据+产业.企业+数据.技术+人才.品牌+市场.应用+发展"相继展开话题讨论. CBIS 2017中国(上海)大数据产业创新 ...

  2. [河南省ACM省赛-第三届] AMAZING AUCTION (nyoj 251)

    题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=251 规则: 1.若某竞标价唯一,则胜出 2.若不存在唯一竞标价,则投标次数最少竞标价中标 ...

  3. LNA

    low noise amplifier ,低噪声放大器. PA主要侧重输出功率,LNA侧重噪声系数,所以LNA用于前级,PA用作末级.

  4. H264的coded_block_pattern编码块模式

    1 词汇约定 CodedBlockPatternLuma:一个宏块的亮度分量的coded_block_pattern CodedBlockPatternChroma:一个宏块的色度分量的coded_b ...

  5. 关于指针要注意的地方还有尝试在codeblocks上建立项目

    1.字符串: char a[]="house"; char *b="house"; a[2]='r';可以   b[2]='r'不可以,因为这个指针变量指的是字 ...

  6. 用纯css改变select的下拉菜单

    select { /*Chrome和Firefox里面的边框是不一样的,所以复写了一下*/ border: solid 1px #000; /*很关键:将默认的select选择框样式清除*/ appe ...

  7. 小demo--横向+展开菜单,支持m站

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  8. maven 阿里镜像

    <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>al ...

  9. 分布式版本控制系统Git-----6.Git 常见命令一览表

    说明/备注 命令 备注 保存更新 git add [-i] -i 逐个确认 检查更新 git status 提交更新 git commit [-a] -m "<更新说明>&quo ...

  10. Jmeter学习笔记

    Jmeter安装 Jmeter组件介绍 Jmeter