#刷题交流# 刷题打卡第多少天了呀!小U和 n 个小朋友正在玩一个有趣的糖果传递游戏。n 个小朋友按顺序排成一列,小U站在最右边的位置。游戏开始时,小U为每个小朋友分配了 a[1], a[2], ..., a[n] 个糖果。现在,小U手里还剩下 m 个糖果要分配。def solution(n, m, a):
current_candy = 0
code = n + 1 # 默认分配给小U
while current_candy < m:
for i in range(n):
# 如果当前小朋友的糖果数量小于等于他右边的小朋友,则保留糖果
if i < n - 1 and a[i] + 1 <= a[i + 1]:
a[i] += 1
code = i + 1
current_candy += 1
break
elif i == n - 1:
# 如果第 n 个小朋友的糖果数量小于等于 m - current_candy,则保留糖果
if a[i] + 1 <= m - current_candy:
a[i] += 1
code = i + 1
current_candy += 1
break
else:
# 如果有一次没有分配出去,肯定都分配不出去
# 没分配出去,保留在小U
current_candy += 1
code=n+1
break
return code