子数组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 | 修改,调试,发布 | 写博客并发布 |