2

Yeni başlayan biriyim ve hackerrank hakkında bir soru üzerinde çalışıyordum. ben büyük girişler için zaman aşımına uğrayan bir problemin parçası olarak bu kodu yazmış: açıklayabilir misiniz sonraki tüm test durumlardaPython'da aşırı büyük girişler nasıl ele alınır?

K = int(input()) 
    roomnos = [int(i) for i in input().split()] 
    setroomnos = set(roomnos) 
    c = (K * sum(setroomnos) - sum(roomnos)) // (K - 1) 
    print(c) 

için hakim tarafından kabul edildi

K = int(input()) 
    roomnos = input().split() 
    setroomnos = set(roomnos) 
    for r in setroomnos: 
     if roomnos.count(r) == 1: 
      print(r) 
      break 

neden ilk büyük girişler için bir zaman aşımına uğradı ve ikincisi iyi çalıştı PS: Temel işlem, bir zamanlar K liste

cevap

3

görünür nos aksine bir listede görünür bir hayır bulmaktır.)İçerisinde O (n) count bulunan ve O (n^2) karmaşıklığına yol açan. İkinci örneğiniz bu şekilde işlem yapmaz ve O (n) karmaşıklığıdır.

İlgili konular