LeetCode简单题之完成一半题目
生活随笔
收集整理的這篇文章主要介紹了
LeetCode简单题之完成一半题目
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
有 N 位扣友參加了微軟與力扣舉辦了「以扣會友」線下活動。主辦方提供了 2N 道題目,整型數組 questions 中每個數字對應了每道題目所涉及的知識點類型。
若每位扣友選擇不同的一題,請返回被選的 N 道題目至少包含多少種知識點類型。
示例 1:
輸入:questions = [2,1,6,2]
輸出:1
解釋:有 2 位扣友在 4 道題目中選擇 2 題。
可選擇完成知識點類型為 2 的題目時,此時僅一種知識點類型
因此至少包含 1 種知識點類型。
示例 2:
輸入:questions = [1,5,1,3,4,5,2,5,3,3,8,6]
輸出:2
解釋:有 6 位扣友在 12 道題目中選擇題目,需要選擇 6 題。
選擇完成知識點類型為 3、5 的題目,因此至少包含 2 種知識點類型。
提示:
questions.length == 2n
2 <= questions.length <= 10^5
1 <= questions[i] <= 1000
來源:力扣(LeetCode)
解題思路
??這道題更像是閱讀理解題。題目主要的意思就是,將questions中的元素頻率從高到低排序,然后每次挑出最大頻率的元素,并加和這些頻率,一旦這些個頻率達到了n那么就說明,這一半的題中包含了這么多個元素的知識點。
class Solution:def halfQuestions(self, questions: List[int]) -> int:s=0 #統計頻率count=0 #統計知識點數for i in sorted(Counter(questions).values(),reverse=True):s+=icount+=1if s>=len(questions)//2:return count
總結
以上是生活随笔為你收集整理的LeetCode简单题之完成一半题目的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode简单题之下载插件
- 下一篇: LeetCode中等题之重排数字的最小值