1.上午主要做了对翻译任务的划分,下午把论文翻译完毕。
2.明天要讲的算法题:对一个集合,求出其连续元素组成的子集中,和最大的子集
我对这道题的理解是:
1)若集合中最小值大于0,意味着所有的都大于0,则最大的子集和,为所有值加起来
2)若集合中最大值小于0,意味着所有的都小于0,则最大的子集和,为集合中最大值
3)其他情况,我的想法:找出所有极值点(此时该极值点必定为正值),并找出所有极值点两边第一个负数的点的位置,以此负数点位边界,求出除负数值以外的点之和。再比较这些和,取出最大的
可是这种想法有问题:例如46,-26,11,-1,40,26,-8,9
不难找出极值点和为:46,11,40+26,9
可是有个问题就是:这所有值加起来仍然比40+26大
为此,我想到了,把边界扩展到两个负数之外,可是仍然不行,只要40+26两边的元素之和大于0的时候都会出现该情况。
莫非要把遍历范围扩展到所有的值?再想想吧