1. 程式人生 > >Python實現網際網路筆試題-今日頭條-3個一組的試題

Python實現網際網路筆試題-今日頭條-3個一組的試題

頭條校招(今日頭條2017秋招真題)


題目描述

頭條的2017校招開始了!為了這次校招,我們組織了一個規模巨集大的出題團隊。每個出題人都出了一些有趣的題目,而我們現在想把這些題目組合成若干場考試出來。在選題之前,我們對題目進行了盲審,並定出了每道題的難度係數。一場考試包含3道開放性題目,假設他們的難度從小到大分別為a, b, c,我們希望這3道題能滿足下列條件:

a<= b<= c
b - a<= 10
c - b<= 10

所有出題人一共出了n道開放性題目。現在我們想把這n道題分佈到若干場考試中(1場或多場,每道題都必須使用且只能用一次),然而由於上述條件的限制,可能有一些考試沒法湊夠3道題,因此出題人就需要多出一些適當難度的題目來讓每場考試都達到要求。然而我們出題已經出得很累了,你能計算出我們最少還需要再出幾道題嗎?

學習程式,來自158*****342的答案

n = int(raw_input())
a = map(int, raw_input().split(' '))
a.sort()
ans = 0
num = 0
for x in a:
    num %= 3
    if num != 0 and x > last + 10:
        ans += 3 - num
        num = 0
    num += 1
    last = x
ans += 3 - num
print ans

但輸入為兩個值: 1 15 時,原本只需加一道題,上面程式輸出錯誤。原因是沒考慮10<i<20這個階段。