题目不多说了,如果分到了这道题目肯定还记得,下面是简单的实现:
#!usr/bin/env python
#encoding:utf-8
'''
__Author__:沂水寒城
功能:区间最大值问题
'''
def slice(num_list, n=1):
res_list=[]
for i in range(len(num_list)-n+1):
res_list.append(num_list[i:i+n])
return res_list
def get_all(num_list):
res_list=[]
for i in range(1,len(num_list)+1):
res_list+=slice(num_list,n=i)
return res_list
def get_max(res_list):
num_list=[]
for one_list in res_list:
if len(one_list)==1:
num_list.append(one_list[0]*one_list[0])
else:
total=sum(one_list)
min_value=min(one_list)
num_list.append(total*min_value)
print max(num_list)
if __name__ == '__main__':
num_list=[[1,2,6],[1,3,5,7],[3,4,5],[1,3,9]]
for one_list in num_list:
res_list = get_all(one_list)
get_max(res_list)
结果如下:
36
60
36
81
[Finished in 0.6s]