título Descrição
LL particularmente bom humor hoje, porque ele comprou um baralho de cartas e descobriu que há na verdade tem dois rei, dois pequenos rei (o deck foi originalmente 54 ^ _ ^) ... ele aleatoriamente retirados de cinco marca, queria Cece própria sorte, veja se você pode ser capaz de obter em linha reta, se for capaz de obtê-lo, ele decidiu comprar uma loteria esportiva, hey! ! "Red A, 3 de espadas, Wang, rei, pedaço quadrado 5", "Oh meu Deus!" Straight ..... LL não está feliz, ele pensou, decide \ Amy pode ser visto como qualquer número, e considerada como uma 1, J é 11, Q é 12, K 13. O acima de cinco cartões podem tornar-se "1,2,3,4,5" (king size e 2, respectivamente visto como 4), "tão afortunado!". LL decidiu comprar amigos loteria esportiva. Agora, peço-lhe para usar esta peça de cartão de simular o procedimento acima, e, em seguida, dizer-nos como LL sorte, se o cartão pode ser composto de direto para a saída verdadeira, caso contrário ele irá falsa saída. Para maior comodidade, você pode pensar king size é 0.
pensamento
Se não uma cama king size, cinco cartas precisam ser reta é necessária: o número máximo de max - min = 4 Número Mínimo
Se houver um tamanho rei, cinco placas precisam ser linear é necessário: max - = 3 min ou max - = 4 min
Se existem duas king size, cinco placas precisam ser linear requer: max - = 2 min ou max-min = 3 ou max - = 4 min
Assim, para além do tamanho rei contanto que não há números duplicados, e max - min <= 4 é para cima.
import collections
class Solution:
def IsContinuous(self, numbers):
if not numbers:
return False
maxi = max(numbers)
mini = 14
nums = collections.defaultdict(lambda:0)
for n in numbers:
if nums[n] > 0 and n!=0:
return False
nums[n] += 1
if n<mini and n!=0:
mini = n
if maxi-mini<=4:
return True
else:
return False