题目如下:
某公司内有 4 个项⽬组,项⽬组 A、B、C、D,项⽬组A现有10⼈,项⽬组B现有7⼈,项⽬组C现
有5⼈,项⽬组D现有4⼈。为了实现跨项⽬组协作,公司决定每⽉从⼈数最多的项⽬组中抽调 3 ⼈
出来,到其他剩下 3 组中,每组 1 ⼈,这称之为⼀次调整优化(亦即经过第⼀次调整后,A组有7
⼈,B组有8⼈,C组有6⼈,D组有5⼈)。
那么请问,经过⼗年的优化调整后,各项⽬组各有⼏⼈?
编程求解该问题,并思考是否为最优解。
我不知道最优解是什么,这只是我个人的解题思路,如果有更好的解题方法,欢迎交流!
def optimization_team(team, n):
"""
Args:
team: 团队人数列表,示例:team = [7, 8, 6, 5]
n: 历时年数
"""
count = 1
while count <= n:
max_team = max(team)
max_idx = team.index(max_team)
num = team.pop(max_idx) - 3
team = list(map(lambda x: x + 1, team))
team.insert(max_idx, num)
count += 1
return team