給定乙個非空的整數陣列,返回其**現頻率前 k 高的元素。
示例 1:
輸入: nums = [1,1,1,2,2,3], k = 2
輸出: [1,2]
示例 2:
輸入: nums = [1], k = 1
輸出: [1]
你可以假設給定的 k 總是合理的,且 1 ≤ k ≤ 陣列中不相同的元素的個數。
你的演算法的時間複雜度必須優於 o(n log n) , n 是陣列的大小。
題目資料保證答案唯一,換句話說,陣列中前 k 個高頻元素的集合是唯一的。
你可以按任意順序返回答案
題解:先存到字典中,value記錄出現次數,然後把字典的items存到陣列中,根據value降序
class solution:
def topkfrequent(self, nums: list[int], k: int) -> list[int]:
dict={}
for i in range(len(nums)):
if nums[i] in dict:
dict[nums[i]]+=1
else:
dict[nums[i]]=1
out=
for i in dict.items():
out.sort(reverse=true)
final=
for i in range(k):
return final
AcWing寒假每日一題 Day14棋盤挑戰
給定乙個 n n n nn n 的棋盤,請你在上面放置 n nn 個棋子,要求滿足 每行每列都恰好有乙個棋子 每條對角線上都最多只能有乙個棋子 上圖給出了當 n 6 n 6n 6 時的一種解決方案,該方案可用序列 2224 446661 113335 55 來描述,該序列按順序給出了從第一行到第六行...
100天每日一題(day6)
20.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。解答 字典儲存括號,字典的key是左括號,value是右括號,用於判斷。然後用乙個棧不斷匹配括號,一旦不匹配就返回失敗 class ...
100天每日一題(day9)
給定乙個字串 s,你可以通過在字串前面新增字元將其轉換為回文串。找到並返回可以用這種方式轉換的最短回文串。示例 1 輸入 aacecaaa 輸出 aaacecaaa 示例 2 輸入 abcd 輸出 dcbabcd 解答 今天週六,天氣晴 大事件 ig打fpx 重點就是 判斷逆序的末端和正序的前端重疊...