原创 LeetCode 159. 至多包含兩個不同字符的最長子串(滑動窗口)

文章目錄1. 題目2. 解題 1. 題目 給定一個字符串 s ,找出 至多 包含兩個不同字符的最長子串 t ,並返回該子串的長度。 示例 1: 輸入: "eceba" 輸出: 3 解釋: t 是 "ece",長度爲3。 示例 2

原创 LeetCode 651. 4鍵鍵盤(DP,Ctrl+CV)

文章目錄1. 題目2. 解題 1. 題目 假設你有一個特殊的鍵盤包含下面的按鍵: Key 1: (A):在屏幕上打印一個 'A'。 Key 2: (Ctrl-A):選中整個屏幕。 Key 3: (Ctrl-C):複製選中區域到

原创 LeetCode 298. 二叉樹最長連續序列(自頂向下)

文章目錄1. 題目2. 解題 1. 題目 給你一棵指定的二叉樹,請你計算它最長連續序列路徑的長度。 該路徑,可以是從某個初始結點到樹中任意結點,通過「父 - 子」關係連接而產生的任意路徑。 這個最長連續的路徑,必須從父結點到子結點

原创 LeetCode 366. 尋找二叉樹的葉子節點(上下翻轉二叉樹+BFS)

文章目錄1. 題目2. 解題 1. 題目 給你一棵二叉樹,請按以下要求的順序收集它的全部節點: 依次從左到右,每次收集並刪除所有的葉子節點 重複如上過程直到整棵樹爲空 示例: 輸入: [1,2,3,4,5]

原创 LeetCode 484. 尋找排列(找規律+貪心)

文章目錄1. 題目2. 解題 1. 題目 現在給定一個只由字符 ‘D’ 和 ‘I’ 組成的 祕密簽名。 ‘D’ 表示兩個數字間的遞減關係,‘I’ 表示兩個數字間的遞增關係。 並且 祕密簽名 是由一個特定的整數數組生成的,該數組唯一

原创 LeetCode 163. 缺失的區間

文章目錄1. 題目2. 解題 1. 題目 給定一個排序的整數數組 nums ,其中元素的範圍在 閉區間 [lower, upper] 當中,返回不包含在數組中的缺失區間。 示例: 輸入: nums = [0, 1, 3, 50,

原创 LeetCode 245. 最短單詞距離 III

文章目錄1. 題目2. 解題 1. 題目 給定一個單詞列表和兩個單詞 word1 和 word2,返回列表中這兩個單詞之間的最短距離。 word1 和 word2 是有可能相同的,並且它們將分別表示爲列表中兩個獨立的單詞。 示例:

原创 LeetCode 663. 均勻樹劃分(樹形DP)

文章目錄1. 題目2. 解題 1. 題目 給定一棵有 n 個結點的二叉樹,你的任務是檢查是否可以通過去掉樹上的一條邊將樹分成兩棵,且這兩棵樹結點之和相等。 樣例 1: 輸入: 5 / \ 10 10

原创 LeetCode 1246. 刪除迴文子數組(區間DP)

文章目錄1. 題目2. 解題 1. 題目 給你一個整數數組 arr,每一次操作你都可以選擇並刪除它的一個 迴文 子數組 arr[i], arr[i+1], ..., arr[j]( i <= j)。 注意,每當你刪除掉一個子數組,

原创 LeetCode 510. 二叉搜索樹中的中序後繼 II(查找右子樹或者祖父節點)

文章目錄1. 題目2. 解題 1. 題目 給定一棵二叉搜索樹和其中的一個節點 node ,找到該節點在樹中的中序後繼。 如果節點沒有中序後繼,請返回 null 。 一個結點 node 的中序後繼是鍵值比 node.val大所有的結

原创 LeetCode 1061. 按字典序排列最小的等效字符串(並查集)

文章目錄1. 題目2. 解題 1. 題目 給出長度相同的兩個字符串:A 和 B,其中 A[i] 和 B[i] 是一組等價字符。 舉個例子,如果 A = "abc" 且 B = "cde",那麼就有 'a' == 'c', 'b'

原创 LeetCode 285. 二叉搜索樹中的順序後繼(中序遍歷)

文章目錄1. 題目2. 解題 1. 題目 給你一個二叉搜索樹和其中的某一個結點,請你找出該結點在樹中順序後繼的節點。 結點 p 的後繼是值比 p.val 大的結點中鍵值最小的結點。 示例 1: 輸入: root = [2,1,3

原创 LeetCode 1245. 樹的直徑(圖的最大直徑結論)

文章目錄1. 題目2. 解題 1. 題目 2. 解題 結論:求無權無向圖中的最長一條路徑 先從任意一點P出發,找到離它最遠的點Q 再從點Q出發,找離它最遠的點W,W到Q的距離就是最長的一條路 採用2次BFS遍歷 cla

原创 LeetCode 545. 二叉樹的邊界(前序+後序)*

文章目錄1. 題目2. 解題 1. 題目 給定一棵二叉樹,以逆時針順序從根開始返回其邊界。 邊界按順序包括左邊界、葉子結點和右邊界而不包括重複的結點。 (結點的值可能重複) 左邊界的定義是從根到最左側結點的路徑。 右邊界的定義是從

原创 LeetCode 573. 松鼠模擬(數學)*

文章目錄1. 題目2. 解題 1. 題目 現在有一棵樹,一隻松鼠和一些堅果。位置由二維網格的單元格表示。 你的目標是找到松鼠收集所有堅果的最小路程,且堅果是一顆接一顆地被放在樹下。 松鼠一次最多隻能攜帶一顆堅果,松鼠可以向上,向下