LeetCode - Valid Palindrome(有效回文)
題目描述 給定一個字符串 s,判斷它是否為回文串。在判斷時,需要忽略非字母和數字的字符,並且忽略大小寫。 回文是指一個字符串正序和反序相同。例如 "A man, a plan, a canal: Panama" 是回文,而 "race a car" 不是回文。 範例: 輸入:s = "A man, a plan, a canal: Panama" 輸出:True 輸入...
題目描述 給定一個字符串 s,判斷它是否為回文串。在判斷時,需要忽略非字母和數字的字符,並且忽略大小寫。 回文是指一個字符串正序和反序相同。例如 "A man, a plan, a canal: Panama" 是回文,而 "race a car" 不是回文。 範例: 輸入:s = "A man, a plan, a canal: Panama" 輸出:True 輸入...
題目描述 給定一個 9 x 9 的數獨板 board,判斷該數獨是否有效。數獨僅需要滿足以下條件: 每行只能包含數字 1-9,每個數字只能出現一次。 每列只能包含數字 1-9,每個數字只能出現一次。 每個 3 x 3 的小方塊只能包含數字 1-9,每個數字只能出現一次。 注意: 數獨板中的空白格用 '.' 表示。 範例: 輸入: board = ...
題目描述: 給定一個整數數組 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 輸出:Refer...
題目描述: 給定一個整數數組 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] 解法思路: 使用一個指針遍歷兩個鏈表,將較小的節點添加到新鏈表中。 若某一鏈表結束,直接將另一鏈表...