Problem Statement
leetcode problem link
Brute Force [Accepted]
class Solution:
def numRabbits(self, answers: List[int]) -> int:
res = 0
data = {}
N = len(answers)
for i in range(N):
ans = answers[i]
if ans == -1:
continue
count = 1
for j in range(i + 1, N):
if answers[j] == answers[i] and count < ans + 1:
answers[j] = -1
count += 1
res += max(count, ans + 1)
return res
Editorial Solution
Approach #1: Count [Accepted]
class Solution(object):
def numRabbits(self, answers):
count = collections.Counter(answers)
return sum(-v % (k+1) + v for k, v in count.iteritems())