LeetCode - Day 8
40. 字母異位詞分組 (Group Anagrams) 題目描述:給定一個字符串數組,將異位詞分組。異位詞是指包含相同字母但順序不同的字符串。 範例: 輸入:["eat", "tea", "tan", "ate", "nat", "bat"] 輸出:[["eat", "tea", "ate"], ["tan", "nat"], ["bat"]] 解...
40. 字母異位詞分組 (Group Anagrams) 題目描述:給定一個字符串數組,將異位詞分組。異位詞是指包含相同字母但順序不同的字符串。 範例: 輸入:["eat", "tea", "tan", "ate", "nat", "bat"] 輸出:[["eat", "tea", "ate"], ["tan", "nat"], ["bat"]] 解...
34. 二元樹的最大深度 (Maximum Depth of Binary Tree) 題目描述:給定一個二元樹,找出其最大深度。樹的最大深度是從根節點到最遠葉子節點的最長路徑上的節點數。 範例: 輸入: 3 / \ 9 20 / \ 15 7 輸出:3 解法思路: ...
28. 字母異位詞分組 (Group Anagrams) 題目描述:給定一組字符串,將異位詞(由相同字母組成,但順序不同的單詞)分組。 範例: 輸入:strs = ["eat","tea","tan","ate","nat","bat"] 輸出:[["eat","tea","ate"],["tan","nat"],["bat"]] 解法思路: ...
23. 合併 K 個排序鏈表 (Merge k Sorted Lists) 題目描述:給定 k 個排序鏈表,將它們合併為一個排序的鏈表,並返回合併後的鏈表。 範例: 輸入:lists = [[1,4,5],[1,3,4],[2,6]] 輸出:[1,1,2,3,4,4,5,6] 解法思路: 使用 優先隊列 (Priority Queue) 來解決...
18. K 個一組翻轉鏈表 (Reverse Nodes in k-Group) 題目描述:給定一個鏈表,將其中每 k 個節點一組進行翻轉,並返回翻轉後的鏈表。如果節點數目不是 k 的倍數,則最後剩餘的節點保持原樣。 範例: 輸入:head = [1,2,3,4,5], k = 2 輸出:[2,1,4,3,5] 解法思路: 使用遞歸或迭代的方式...
12. 合併區間 (Merge Intervals) 題目描述:給定若干個區間的集合,將重疊的區間合併。 範例: 輸入:[[1,3],[2,6],[8,10],[15,18]] 輸出:[[1,6],[8,10],[15,18]] 解釋:區間 [1,3] 和 [2,6] 重疊,合併為 [1,6]。 解法思路: 首先按照區間的起點進行排序。 ...
6. 合併兩個有序鏈表 (Merge Two Sorted Lists) 題目描述:將兩個升序鏈表合併為一個新的升序鏈表,並返回合併後的新鏈表。 範例: 輸入:l1 = [1, 2, 4], l2 = [1, 3, 4] 輸出:[1, 1, 2, 3, 4, 4] 解法思路: 使用兩個指針分別指向兩個鏈表的頭節點。 每次比較兩個鏈表當前節點...
1. 兩數之和 (Two Sum) 題目描述:給定一個整數數組 nums 和一個目標值 target,請在該數組中找出和為目標值的那兩個整數,並返回它們的索引。 範例: 輸入:nums = [2, 7, 11, 15], target = 9 輸出:[0, 1] 解釋:因為 nums[0] + nums[1] == 9,返回 [0, 1]。 解...
準備 LeetCode 的算法題目有一些策略,能幫助你高效提高解題能力,尤其是針對技術面試。以下是一些建議: 1. 掌握基礎資料結構與算法 資料結構:陣列 (Array)、鏈結串列 (Linked List)、堆疊 (Stack)、佇列(Queue)、二元樹(Binary tree)、圖 (Graph)、哈希表 (Hash table)、Trie 樹等。 演算法:排序、搜索、遞迴...
LeetCode 是一個受歡迎的在線平台,專門提供程式設計面試題目和算法練習。它的主要功能包括: 問題集:涵蓋各種難度的算法和資料結構題目,分為簡單、中等和困難級別。這些問題有助於提升程式設計技能,尤其是針對技術面試的準備。 編碼環境:LeetCode 提供了線上編寫和測試代碼的功能,支持多種編程語言(如 C++、Python、Java 等),並能即時查...