有N个孩子站成一排,每个孩子有一个分值。给这些孩子派发糖果,需要满足如下需求:
1、每个孩子至少分到一个糖果
2、分值更高的孩子比他相邻位的孩子获得更多的糖果
求至少需要分发多少糖果?
example1:
【输入】0,1,0
【输出】4
example2:
【输入】5,4,1,1
【输出】7
from 牛客网 蘑菇街 数据开发笔试
l = input()
if type(l)==int:
print 1
else:
p=len(l)
c = [1]*p
for i in range(p-1):
if l[i+1]>l[i]:
c[i+1]=c[i]+1
elif l[i+1]==l[i]:
c[i+1]=c[i]
for i in range(p-1,0,-1):
if l[i-1]>l[i]:
if c[i-1]<=c[i]:
c[i-1]=c[i]+1
elif l[i-1]==l[i]:
c[i-1]=c[i]
print sum(c)
【做题反思】:
1 要用笔尝试,别想得太复杂;如果用迭代注意时间复杂度。
2 要注意极限情况。
完成时间:40min
【简答题】
近些年来大数据是个热门的词汇,如马云所说未来是DT(DataT