连续子数组的最大和

时间:2019-01-12 08:57:45
【文件属性】:
文件名称:连续子数组的最大和
文件大小:67KB
文件格式:ZIP
更新时间:2019-01-12 08:57:45
连续子数组 最大和 从头到尾逐个累加示例数组中的每个数字。初始化和为0,第一步加上第一个数字1,此时和为1。接下来第二步加上数字-2,和就变成了-1.第三步加上数字3。注意到由于此前累计的和是-1,小于0,那如果用-1加上3,得到的和是2,比3本身还小。也就是说从第一个数字开始的子数组的和会小于从第三个数字开始的子数组的和。因此我们不用考虑从第一个数字开始的子数组,之前累计的和也被抛弃。 我们从第三个数字重新开始累加,此时得到的和是3.接下来第四步加10,得到和为13。第五步加上-4,和为9。我们发现由于-4是一个负数,因此累加-4之后得到的和比原来的和还要小。因此我们要把之前得到的和13保持下来,它有可能是最大的子数组的和。第六步加上数字7,9加7的结果是16,此时和比之前最大的和13还要大,把最大的子数组的和由13更新为16.第七步加上2,累加得到的和为18,同时更新最大的子数组的和。第八步加上最后一个数字-5,由于得到的和为13,小于此前最大和18,因此最终最大的子数组的和为18,对应的子数组是{3,10,-4,7,2}。
【文件预览】:
SumOfSubarray
----SumOfSubarrayTests()
--------SumOfSubarrayTests.m(656B)
--------SumOfSubarrayTests-Info.plist(684B)
--------en.lproj()
----.git()
--------index(2KB)
--------hooks()
--------config(137B)
--------description(73B)
--------refs()
--------branches()
--------logs()
--------objects()
--------info()
--------COMMIT_EDITMSG(15B)
--------HEAD(23B)
----SumOfSubarray()
--------main.m(341B)
--------SumOfSubarray-Prefix.pch(344B)
--------JViewController.m(1KB)
--------Base.lproj()
--------JAppDelegate.m(2KB)
--------JViewController.h(287B)
--------Images.xcassets()
--------SumOfSubarray-Info.plist(1KB)
--------en.lproj()
--------JAppDelegate.h(281B)
----SumOfSubarray.xcodeproj()
--------project.xcworkspace()
--------project.pbxproj(19KB)
--------xcuserdata()

网友评论