LeetCode 75

75 道經典演算法題,面試必備

0%
01

1768. Merge Strings Alternately

用雙指針交替從兩字串取字元合併成新字串

Easy偶爾考3 min
02

1071. Greatest Common Divisor of Strings

用 GCD 長度截取候選字串並驗證是否能重複拼成原字串

Easy偶爾考3 min
03

1431. Kids With the Greatest Number of Candies

找出陣列最大值後逐一比較每個孩子加上額外糖果是否達標

Easy了解即可3 min
04

605. Can Place Flowers

用貪心法逐格檢查左右鄰居是否為空來決定能否種花

Easy偶爾考3 min
05

345. Reverse Vowels of a String

用左右雙指針找到母音後交換位置

Easy偶爾考2 min
06

151. Reverse Words in a String

分割字串去除多餘空格後反轉單字順序

Medium常考3 min
07

238. Product of Array Except Self

用前綴積和後綴積相乘得到每個位置除自身外的乘積

Medium必考3 min
08

334. Increasing Triplet Subsequence

維護兩個最小值 first 和 second 來判斷是否存在遞增三元組

Medium常考3 min
09

443. String Compression

用雙指針原地壓縮字元陣列記錄字元和出現次數

Medium常考3 min
10

283. Move Zeroes

用快慢指針將非零元素往前搬並保持相對順序

Easy高頻3 min
11

392. Is Subsequence

用雙指針逐字元匹配判斷 s 是否為 t 的子序列

Easy常考3 min
12

11. Container With Most Water

用左右指針從兩端夾逼,每次移動較矮的那邊來尋找最大面積

Medium必考2 min
13

1679. Max Number of K-Sum Pairs

用排序雙指針或 HashMap 找出最多配對使兩數之和等於 k

Medium常考3 min
14

643. Maximum Average Subarray I

用固定大小滑動窗口維護子陣列的和來找最大平均值

Easy常考3 min
15

1456. Maximum Number of Vowel Letters in a Substring

用固定大小滑動窗口計算子字串中的母音數量

Medium偶爾考3 min
16

1004. Max Consecutive Ones III

用可變大小滑動窗口追蹤翻轉次數來找最長連續 1 的子陣列

Medium高頻3 min
17

1493. Longest Subarray of 1's After Deleting One Element

用滑動窗口允許最多一個 0 來找刪除一個元素後最長的全 1 子陣列

Medium常考3 min
18

1732. Find the Highest Altitude

用前綴和累加海拔變化量並追蹤過程中的最大值

Easy偶爾考3 min
19

724. Find Pivot Index

用總和減去左前綴和來判斷是否存在左右和相等的樞紐點

Easy常考3 min
20

2215. Find the Difference of Two Arrays

用 Set 差集找出兩個陣列各自獨有的元素

Easy偶爾考3 min
21

1207. Unique Number of Occurrences

用 Counter 統計頻率後用 Set 檢查頻率是否唯一

Easy偶爾考3 min
22

1657. Determine if Two Strings Are Close

比較兩字串的字元集合相同且頻率排序後相同來判斷是否 close

Medium偶爾考2 min
23

2352. Equal Row and Column Pairs

將每行轉為字串鍵存入 HashMap 再逐列比對計數

Medium偶爾考2 min
24

2390. Removing Stars From a String

用 Stack 模擬星號刪除操作逐字元處理字串

Medium常考3 min
25

735. Asteroid Collision

用 Stack 模擬小行星碰撞邏輯處理正負方向的交互

Medium常考3 min
26

394. Decode String

用 Stack 處理巢狀的 k[encoded_string] 編碼字串

Medium高頻3 min
27

933. Number of Recent Calls

用 Queue 維護 3000ms 時間窗口內的請求數量

Easy偶爾考3 min
28

649. Dota2 Senate

用雙 Queue 模擬 Radiant 與 Dire 的投票淘汰過程

Medium偶爾考3 min
29

2095. Delete the Middle Node of a Linked List

用快慢指針找到中點的前一個節點,刪除中間節點

Medium常考3 min
30

328. Odd Even Linked List

將奇數位和偶數位節點分離後重新連接

Medium常考3 min
31

206. Reverse Linked List

用迭代或遞迴將 Linked List 的指針方向全部反轉

Easy必考3 min
32

2130. Maximum Twin Sum of a Linked List

用快慢指針找中點、反轉後半段,配對求最大 twin sum

Medium偶爾考3 min
33

104. Maximum Depth of Binary Tree

用遞迴 DFS 計算二元樹的最大深度

Easy高頻3 min
34

872. Leaf-Similar Trees

用 DFS 收集兩棵樹的葉節點序列並比較是否相同

Easy偶爾考3 min
35

1448. Count Good Nodes in Binary Tree

DFS 遍歷時追蹤路徑上的最大值來判斷 good node

Medium常考3 min
36

437. Path Sum III

用前綴和 + HashMap 在 DFS 中高效計算路徑和等於目標值的數量

Medium高頻3 min
37

1372. Longest ZigZag Path in a Binary Tree

DFS 追蹤左右交替方向,計算最長 ZigZag 路徑

Medium偶爾考3 min
38

236. Lowest Common Ancestor of a Binary Tree

用後序遍歷從底部向上尋找兩個節點的最低公共祖先

Medium必考3 min
39

199. Binary Tree Right Side View

BFS 逐層遍歷,收集每層最後一個節點

Medium高頻2 min
40

1161. Maximum Level Sum of a Binary Tree

BFS 逐層計算節點值總和,找出總和最大的層級

Medium常考3 min
41

700. Search in a Binary Search Tree

利用 BST 左小右大的性質高效搜尋目標值

Easy常考3 min
42

450. Delete Node in a BST

處理三種刪除情況:無子、單子、雙子節點

Medium常考3 min
43

841. Keys and Rooms

用 DFS 或 BFS 檢查從房間 0 出發能否到達所有房間

Medium常考3 min
44

547. Number of Provinces

用 DFS 或 Union-Find 計算無向圖的連通分量數

Medium高頻2 min
45

1466. Reorder Routes to Make All Paths Lead to the City Zero

DFS 遍歷樹形圖,計算需要反轉方向的邊數

Medium偶爾考2 min
46

399. Evaluate Division

建立帶權重的有向圖,用 DFS 計算變數間的除法結果

Medium常考2 min
47

1926. Nearest Exit from Entrance in Maze

BFS 從入口出發尋找最近的邊界出口

Medium常考2 min
48

994. Rotting Oranges

多源 BFS 模擬腐爛橘子向四方擴散的過程

Medium高頻4 min
49

215. Kth Largest Element in an Array

用大小為 K 的 Min Heap 維護前 K 大的元素

Medium必考2 min
50

2336. Smallest Number in Infinite Set

用 Min Heap 搭配 HashSet 管理無限集合的最小元素

Medium偶爾考3 min
51

2542. Maximum Subsequence Score

排序配合 Min Heap 維護 K 個最大元素,貪心取得最大分數

Hard常考3 min
52

2462. Total Cost to Hire K Workers

雙 Min Heap 從兩端模擬每次取最便宜的工人

Hard偶爾考3 min
53

374. Guess Number Higher or Lower

經典二分搜尋,透過 API 回饋縮小搜尋範圍

Easy常考3 min
54

2300. Successful Pairs of Spells and Potions

排序藥水陣列後用二分搜尋找出每個法術的成功配對數

Medium常考3 min
55

162. Find Peak Element

二分搜尋利用相鄰元素的遞增遞減趨勢找到峰值

Medium高頻3 min
56

875. Koko Eating Bananas

二分搜尋答案空間,找到最小吃香蕉速度使得在時限內吃完

Medium高頻4 min
57

17. Letter Combinations of a Phone Number

回溯法枚舉電話鍵盤上每個數字對應字母的所有組合

Medium高頻3 min
58

216. Combination Sum III

回溯加剪枝,從 1-9 中選 K 個不重複數字使其和為 N

Medium常考4 min
59

1137. N-th Tribonacci Number

基礎 DP 或滾動變數計算 Tribonacci 數列第 N 項

Easy偶爾考3 min
60

746. Min Cost Climbing Stairs

1D DP 計算爬到樓頂的最小成本,每次可跨一或兩階

Easy常考3 min
61

198. House Robber

不相鄰子序列最大和,經典 1D DP 取或不取的決策

Medium必考3 min
62

790. Domino and Tromino Tiling

狀態轉移方程推導 2×N 棋盤用 Domino 和 Tromino 的鋪法數

Hard偶爾考3 min
63

62. Unique Paths

2D DP 計算從左上到右下的不同路徑數

Medium高頻3 min
64

1143. Longest Common Subsequence

經典 2D DP 比較兩個字串找出最長公共子序列長度

Medium高頻3 min
65

714. Best Time to Buy and Sell Stock with Transaction Fee

狀態機 DP 追蹤持有和未持有股票兩種狀態的最大利潤

Medium常考3 min
66

72. Edit Distance

經典字串 DP,用插入、刪除、替換三種操作將一個字串轉換為另一個

Hard高頻2 min
67

338. Counting Bits

DP 加位元運算,利用已算過的結果推導每個數字的 1 的個數

Easy偶爾考5 min
68

136. Single Number

XOR 的自消性質,所有成對數字互消後剩下的就是唯一的單獨數字

Easy高頻3 min
69

1318. Minimum Flips to Make a OR b Equal to c

逐位元分析,根據 c 的每一位決定 a 和 b 需要翻轉幾次

Medium偶爾考4 min
70

208. Implement Trie (Prefix Tree)

實作 Trie 資料結構,支援插入、搜尋和前綴查詢

Medium高頻2 min
71

1268. Search Suggestions System

排序加二分搜尋(或 Trie + DFS)實作搜尋建議功能

Medium常考3 min
72

435. Non-overlapping Intervals

貪心策略按結束時間排序,移除最少區間使其不重疊

Medium高頻4 min
73

452. Minimum Number of Arrows to Burst Balloons

區間貪心,找最少的箭能射穿所有氣球的重疊區域

Medium常考4 min
74

739. Daily Temperatures

單調遞減 Stack 追蹤尚未找到更暖天數的日子

Medium高頻4 min
75

901. Online Stock Span

單調 Stack 即時計算股票價格的連續跨度

Medium常考4 min