LeetCode - 3Sum(三數之和)
題目描述 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a、b、c 使得 a + b + c = 0。找出所有滿足條件且不重複的三元組 a, b, c。答案中每個三元組需按非降序排列,且答案集中不能包含重複的三元組。 範例: 輸入:nums = [-1, 0, 1, 2, -1, -4] 輸出:[[-1, -1, 2], [-1, 0, 1]] 解釋:nu...
題目描述 給定一個包含 n 個整數的數組 nums,判斷 nums 中是否存在三個元素 a、b、c 使得 a + b + c = 0。找出所有滿足條件且不重複的三元組 a, b, c。答案中每個三元組需按非降序排列,且答案集中不能包含重複的三元組。 範例: 輸入:nums = [-1, 0, 1, 2, -1, -4] 輸出:[[-1, -1, 2], [-1, 0, 1]] 解釋:nu...
題目描述 給定一個整數數組 height,其中每個元素 height[i] 表示容器兩邊垂直線的高度。每個垂直線與相鄰線的間距為 1,選擇兩條線構成容器,使其可以裝最多的水。返回該容器可以容納的最大水量。 範例: 輸入:height = [1,8,6,2,5,4,8,3,7] 輸出:49 解釋:選擇位置 1 和位置 8 的兩條線,高度分別為 8 和 7,間距為 7。水量為 7 * min...
題目描述: 給定一個字符串數組,將異位詞分組。異位詞是指包含相同字母但順序不同的字符串。 範例: 輸入:["eat", "tea", "tan", "ate", "nat", "bat"] 輸出:[["eat", "tea", "ate"], ["tan", "nat"], ["bat"]] 解法思路: 我們可以通過對每個字符串進行排序,將異位詞變成相同的排序結果,然...
題目描述 給定一個非空的整數數組 nums,返回其中出現頻率最高的前 k 個元素。 範例: 輸入:nums = [1,1,1,2,2,3], k = 2 輸出:[1,2] 輸入:nums = [1], k = 1 輸出:[1] 解法思路 要找到頻率最高的 k 個元素,最有效的方法是利用 哈希表 記錄每個數字的出現次數,然後將這些數據進行排序或用結構來提取出前 k 個頻率最高的元素。...
題目描述 給定一個字符串 s,判斷它是否為回文串。在判斷時,需要忽略非字母和數字的字符,並且忽略大小寫。 回文是指一個字符串正序和反序相同。例如 "A man, a plan, a canal: Panama" 是回文,而 "race a car" 不是回文。 範例: 輸入:s = "A man, a plan, a canal: Panama" 輸出:True 輸入:s = "ra...
題目描述 給定一個 9 x 9 的數獨板 board,判斷該數獨是否有效。數獨僅需要滿足以下條件: 每行只能包含數字 1-9,每個數字只能出現一次。 每列只能包含數字 1-9,每個數字只能出現一次。 每個 3 x 3 的小方塊只能包含數字 1-9,每個數字只能出現一次。 注意: 數獨板中的空白格用 '.' 表示。 範例: 輸入: board = [ ["5...
題目描述: 給定一個整數數組 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 ...