前言
小编在这里汇总了一些现在的python面试题,安利一波小福利送给感兴趣的同学。
题目1
某俱乐部有4只足球队 A、B、C、D 队,现按照 1至20 的级别划分每个队伍,目前每队的战斗力水平级别依次为 10、7、5、4。现俱乐部为了优化各队的能力水平,决定每月底从战斗力战斗最高的队伍抽出部分人力资源,平均分配到其他小队(规则:分配3个战斗力的人力资源出来到其他小队,所以经过一个月的调整分配,各小队现在的战斗力水平:7、8、6、5) 那么 请问,经过五年的战斗力优化调整后,哪个小队的战斗力最高,为多少?请编程求解该问题, 并思考是否为最优解。同时能否有对应的算法可以快速得出对应的结果?
问题解析:
该问题说白了,就是将列表[10、7、5、4]根据每个月调整一次,每次对该列表最大的值进行减3,其余值分别加1,理解这样的逻辑之后,那大致代码实现如下
start_list = [10, 7, 5, 4]
new_list = []
for num in range(60): # 这里的 range(60) 表示 60 个月(即五年)
for i in start_list:
if i == max(start_list):
new_list.append(i-3)
else:
new_list.append(i+1)
start_list = new_list
new_list = []
print(start_list)
经过五年,那就是 60 个月,结果为[6, 7, 5, 8]
最后一个小队的战斗力最高,为 8



