LeetCode - 乘積除自身數組 (Product of Array Except Self)
題目描述: 給定一個整數數組 nums,返回一個數組 output,其中 output[i] 是 nums 中除 nums[i] 之外的所有元素的乘積。 範例: 輸入:nums = [1,2,3,4] 輸出:[24,12,8,6] 解法思路: 先構造一個數組 left_products,其中 left_products[i] 是 nums[i] 左邊所有元素的乘積。 ...
題目描述: 給定一個整數數組 nums,返回一個數組 output,其中 output[i] 是 nums 中除 nums[i] 之外的所有元素的乘積。 範例: 輸入:nums = [1,2,3,4] 輸出:[24,12,8,6] 解法思路: 先構造一個數組 left_products,其中 left_products[i] 是 nums[i] 左邊所有元素的乘積。 ...
題目描述 給定一個整數數組 nums,判斷數組中是否存在重複元素。如果存在某個值在數組中出現至少兩次,返回 True;如果每個元素都不相同,則返回 False。 範例: 輸入:nums = [1,2,3,1] 輸出:True 輸入:nums = [1,2,3,4] 輸出:False 輸入:nums = [1,1,1,3,3,4,3,2,4,2] 輸出:True 解法思路 這個題目...
題目描述 給定兩個單向鏈表 headA 和 headB,找出它們的交點。若兩鏈表沒有交點,則返回 None。 定義交點: 交點是指兩個鏈表從某一個節點開始之後的節點完全一致。 範例: 輸入:intersectVal = 8, listA = [4,1,8,4,5], listB = [5,6,1,8,4,5], skipA = 2, skipB = 3 輸出:Reference of ...
題目描述: 給定一個整數數組 nums 和一個目標值 target,請在該數組中找出和為目標值的那兩個整數,並返回它們的索引。 範例: 輸入:nums = [2, 7, 11, 15], target = 9 輸出:[0, 1] 解釋:因為 nums[0] + nums[1] == 9,返回 [0, 1]。 解法思路: 使用哈希表來記錄已經遍歷過的數字及其索引。...
這裡將 LeetCode 題目按不同的算法和數據結構類型進行分類,便於集中學習和針對性練習: 1. 數組與哈希表 (Array & Hashing) Two Sum:在數組中找出兩個數字,使其和等於目標值。 Contains Duplicate:判斷數組中是否包含重複元素。 Product of Array Except Self:返回一個數組,其中每個元素是其他...
51. 全排列 (Permutations) 題目描述:給定一個不含重複數字的整數數組 nums,返回其所有可能的排列。 範例: 輸入:nums = [1,2,3] 輸出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 解法思路: 使用回溯法構造所有排列。在每一層遞歸中,通過交換當前索引位置和下一個未處理位置的元素來...
46. 合併兩個有序鏈表 (Merge Two Sorted Lists) 題目描述:給定兩個升序鏈表,將它們合併成一個新的升序鏈表並返回。 範例: 輸入:l1 = [1,2,4], l2 = [1,3,4] 輸出:[1,1,2,3,4,4] 解法思路: 使用一個指針遍歷兩個鏈表,將較小的節點添加到新鏈表中。 若某一鏈表結束,直接將另一鏈表的剩餘部分加入新鏈表中。...
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 解法思路: 使用遞歸的深度優先搜...