# 有一个列表为num_list,找到一个具有最大和的连续子列表,返回其最大和。
# 示例:
# 输入: [-3,1,-1,6,-1,2,4,-5,4]
# 输出: 11
# 解释: 连续子数组 [6,-1,2,4] 的和最大为 11
def func(my_list):
start_data = my_list[0]
sum = my_list[0]
start = 0
add = 1
new_list = []
for i in range(1, len(my_list)):
if start_data + my_list[i] < my_list[i] or start_data == 0:
start = i
add = 1
else:
add += 1
start_data = max(start_data+my_list[i], my_list[i])
sum = max(start_data, sum)
if sum == start_data:
new_list.append((start, start+add))
print(sum, my_list[new_list[-1][0]: new_list[-1][1]])
my_list = [-1,113,1,-11,10,-1,2,4,-5,4]
# my_list = [x for x in range(10)]
# my_list = [-3,1,-1,6,-1,2,4,-5,-4,-4,10]
func(my_list)