子数组1

队友:http://home.cnblogs.com/u/Megau/

一、分析

 

这里采用动态规划来解决问题。

 

本来使用for循环依次遍历实现,可后来采用了动态规划。

最大子数组可能是一个数本身,或者是这个数前面的数之和想加,这就看前面的和为正还是负。

每一次求得最大值都要和前一次比较。

如此循环递归。

二、代码

str1="4 -2 3 -1 -1 10"
#str1=raw_input()
str1=str1.split()
counter_1=0

array_0=[0]*1000

counter_1=0
sum_record_unexcept=0

for i in str1:
    if(counter_1==0):
        sum_constant_add=array_0[0]
    i=int(i)
    array_0[counter_1]= i
    counter_1=counter_1+1#count_1统计输入数量
    sum_record_unexcept=max(sum_record_unexcept,sum_constant_add)
    sum_constant_add=max(sum_constant_add+i,i)
answer=max(sum_constant_add,sum_record_unexcept)
print"answer",answer
print array_0
    
    
    

 

三、截图

 项目计划日志(单位:h):

  听课 编写程序 阅读相关书籍 网上查找资料   日总计
周一 2 0 0 0 2
周二 0 1 0  0 1
周三  0 1 0  0 1
周四 2 1.5  0 0 3.5
周五  0 0 2 0 2
周六  0 1 0  0 1
周日          
周总计 4 4.5 2 0 10.5

                         时间记录日志(单位:min):

日期 开始时间 结束时间 中断时间 净时间 活动 备注
星期一 14:00 15:50 10(课间) 100 听课 上课
  19:30 21:30 30 90 阅读  
星期二 19:30 20:30 30 30 编程  
星期三 14:00  15:00 0  60 编程 数组最大子数组之和1
  19:00 20:00 30 30 编程
星期四 14:00 15:50 10 100 听课 软件工程上课
  21:30 20:30 0 60 编程 数组最大子数组之和2的程序
  19:30 20:30 0 60 编程  
星期五 14:00 16:00 0 120 编程 数组最大子数组之和2的程序
星期六 18:00 17:30 30 120 修改,调试,发布 写博客并发布
posted @ 2016-03-26 21:10  SurverDevin  阅读(142)  评论(1编辑  收藏  举报