go语言实现寻找最大子数组
题目:给定一个数字序列,寻找其中各元素相加和最大的子数组
/*
寻找最大子数组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语言实现寻找最大子数组的更多相关文章
- Java 数组中寻找最大子数组
程序设计思想: 依次将数组划分开,先判断一个元素的单个数组大小,接下来两个,依次上升,最后将所得结果进行比较赋值,输出最大结果. 1 package ketangTest; //张生辉,康治家 201 ...
- homework-01 "最大子数组之和"的问题求解过程
写在前面:我的算法能力很弱,并且也是第一次写博文,总之希望自己能在这次的课程中学到很多贴近实践的东西吧. 1.这次的程序是python写的,这也算是我第一次正正经经地拿python来写东西,结果上来说 ...
- 动态规划法(八)最大子数组问题(maximum subarray problem)
问题简介 本文将介绍计算机算法中的经典问题--最大子数组问题(maximum subarray problem).所谓的最大子数组问题,指的是:给定一个数组A,寻找A的和最大的非空连续子数组.比如 ...
- CLRS最大子数组问题
今天我们一起来看一下关于最大子数组的一些问题.最大子数组的应用场景可以是这样的:有一天,你搞了一场投资开始炒股,这时你就会想,我怎样才能获得最大的利润呢,最简单的想法就是我在股票的最低价时买入,然后在 ...
- 对"一维最大子数组和"问题的思考(homework-01)
一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考题,在<编程之美>一书中同时阐述了一维数组和二维数组的讨论.本篇博客 ...
- 对"一维最大子数组和"问题的思考
对"一维最大子数组和"问题的思考(homework-01) 一维最大子数组和问题,即给定一个数组,在它所有的连续子数组的和中,求最大的那个和.“最大子数组和”是一个很好的IT面试考 ...
- 4月25日课上练习 一维数组最大子数组(debug版)
一维数组中求最大子数组的算法 package com.wangwang.mar; import java.util.Scanner; public class Sum { public static ...
- Java课程课后作业190309之连续最大子数组
老师在课堂是提出了这个问题,并且提出了时间复杂度是O(n)的要求,一开始我自己思想简单,在逻辑上出现了十分粗心的错误,后来同学们也在课堂上比较激烈地讨论了一番,也只是将时间复杂度降到了O(n*n),在 ...
- [PHP]算法-最大子数组问题思路
最大子数组问题,股票价格示例: 1.在最高价格开始向左寻找之前的最低价格 2.在最低价格开始向右寻找之后的最高价格 3.暴力求解法,尝试每队可能的买进和卖出组合,保证卖出在买进之后 key buy s ...
随机推荐
- 凭借5G研究优势,诺基亚将携手菲律宾将其应用于VR/AR领域
目前,很多人都在抱怨网速不行,影响视频的流畅播放,未来这些问题可以通过5G解决.近日,诺基亚和PLDT的全资子公司Smart首次在菲律宾一个"现场"网络演示上实现了5G速度,该网络 ...
- Java定时任务器
java定时任务,每天定时执行任务.以下是这个例子的全部代码. public class TimerManager { //时间间隔 private static final long PERIOD_ ...
- C#导出EXCEL的方法
/// using System; using System.Collections.Generic; using System.Text; using System.Data; using Syst ...
- JavaScript里利用DOM获取宽高大全
网页可见区域宽:document.body.clientWidth网页可见区域高:document.body.clientHeight网页可见区域宽:document.body.offsetWidth ...
- 汉字转全拼音函数优化方案(SQLServer),值得你看看
函数要求实现功能 select 函数名 ('你好,我是追索') 返回的结果(ni hao , wo shi zhui suo) 解决方案一: 解决方案一 /* 根据汉字获取全拼 1.生成所有读音临时表 ...
- ogg 初始化
192.168.27.33test11ghdb11gtrandata: 同步delete,update 使用config 文件:同步表使用进程根据SCN号和RBA和主键同步##目的:数据定时同步,从源 ...
- JavaScript DOM编程艺术-学习笔记(第五章、第六章)
第五章: 1.题外话:首先大声疾呼,"js无罪",有罪的是滥用js的那些人.js的father 布兰登-艾克,当初为了应付工作,10天就赶出了这个js,事后还说人家js是c语言和s ...
- 3个微信小程序体验报告
1.小程序摩拜单车.腾讯视频.JD的体报告 2.小程序的入口存在不公平 3.小程序2.0会怎么样?WSO浅谈 KEVIN常用的APP是以摩拜单车与JD商城和大众点评等,那么今天也就通过这上个进行对比 ...
- ZS and The Birthday Paradox
ZS and The Birthday Paradox 题目链接:http://codeforces.com/contest/711/problem/E 数学题(Legendre's formula) ...
- hadoop 读取文件的两种方式
1.操作javaAPI方式 static{ URL.setURLStreamHandlerFactory(new FsUrlStreamHandlerFactory()); } public stat ...