给定数字数组,返回范围内的数字总和

时间:2019-03-12 07:18:27

标签: python arrays

问题是

给出一系列的士兵返回可以向某些上级报告的士兵人数。

ranks =  [3, 4, 3, 0, 2, 2, 3, 0, 0]

给定[4,2,0]的排名,它应该返回0。

1 个答案:

答案 0 :(得分:0)

因此,据我了解,您想找到所有可以报告给 x + 1 位士兵的“ x ”级士兵。 您可以解析数组并计算相同级别的士兵人数:

SoldiersRanks = [0] * MAX_RANK
for rank in ranks:
    SoldiersRanks[rank] += 1       # sum the number of soldiers with the same rank

然后检查哪些职等具有优势

SoldiersWithSuperiorSum = 0
for i in range(MAX_RANK-1):
    if SoldiersRanks[i] == 0:
        continue                   # skip if there are no soldiers of rank i
    if SoldiersRanks[i+1] == 0:
        continue                   # skip if there is no superior of rank i+1
    SoldiersWithSuperiorSum += SoldiersRanks[i]
print SoldiersWithSuperiorSum