题目
代码
class Solution:
def halfQuestions(self, questions: List[int]) -> int:
cnt=Counter(questions)
cnt=dict(sorted(cnt.items(),key=lambda x:x[1],reverse=True))
ans=0
aim=len(questions)//2
for key in cnt:
if aim:
ans+=1
aim-=cnt[key]
aim=max(0,aim)
else:
return ans
return ans
【写法2】
class Solution:
def halfQuestions(self, questions: List[int]) -> int:
cnt=Counter(questions)
cnt=dict(sorted(cnt.items(),key=lambda x:x[1],reverse=True))
aim=len(questions)//2
for idx,key in enumerate(cnt):
aim-=cnt[key]
if aim<=0:
return idx+1
return -1
【写法3】
class Solution:
def halfQuestions(self, questions: List[int]) -> int:
n = len(questions) // 2
for k, v in enumerate(sorted(Counter(questions).values(), reverse=True)):
n -= v
if n <= 0:
return k + 1