def findresult(serial): subresults = [] flag = False for i in serial: if flag and i < 0: flag = False elif flag: subresults[-1].append(i) elif i > 0: flag = True subresults.append([i]) return sorted(subresults, key=lambda x: sum(x), reverse=True)[0]
因为子序列必须是连续的,所以每个局部和最大的子序列是前后为边界或负数的区间