python分糖果_分糖果-题解(Python代码) 求大佬点进来优化

#####Python跑一遍,最优结果是超时,评分80%,运算量大的情况下时间很久,代码如下,求大佬优化!

```python

def xd(liD):

'''

判断糖果是否相等

:param liD:

:return:

'''

i = liD[0]

flag = True

for item in liD:

if i != item:

flag = False

return flag

def ftg(liD):

'''

向左边小朋友分糖果,分完糖果老师给奇数个的小朋友发糖果

:param liD:

:return:

'''

countF = 0

for i in range(len(liD)):

if i==0:

liD[-1] += liD[0]//2

liD[0] = liD[0] - liD[0] // 2

else:

liD[i-1] += liD[i]//2

liD[i] = liD[i] - liD[i] // 2

for i in range(len(liD)):

if liD[i] % 2 != 0:

liD[i] += 1

countF += 1

return countF

personNum = int(input())

liD = list(map(int,input().split()))

count = 0

while xd(liD) != True:

count += ftg(liD)

xd(liD)

print(count)

```

0.0分

3 人评分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值