100天每日一題(day14)

2021-10-24 10:45:16 字數 735 閱讀 2481

給定乙個非空的整數陣列,返回其**現頻率前 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 重點就是 判斷逆序的末端和正序的前端重疊...