Array & Two Pointers
#1
Easy
Two Sum
給定一個整數陣列和目標值,找出陣列中兩個數字相加等於目標值的索引位置。
#26
Easy
Remove Duplicates from Sorted Array
從已排序陣列中移除重複元素,使用雙指標原地操作。
#27
Easy
Remove Element
移除陣列中所有等於給定值的元素,使用雙指標原地操作。
#35
Easy
Search Insert Position
在已排序陣列中找到目標值的索引,若不存在則返回插入位置。
#66
Easy
Plus One
對以陣列表示的非負整數加一。
#88
Easy
Merge Sorted Array
合併兩個已排序陣列,使用雙指標從後往前填充。
#118
Easy
Pascal's Triangle
生成楊輝三角的前 n 行。
#119
Easy
Pascal's Triangle II
返回楊輝三角的第 k 行,空間優化版本。
#167
Easy
Two Sum II - Input Array Is Sorted
在已排序陣列中找出兩數之和,使用雙指標。
#169
Easy
Majority Element
找出出現次數超過一半的元素,使用 Boyer-Moore 投票算法。
#217
Easy
Contains Duplicate
判斷陣列中是否有重複元素,使用集合。
#268
Easy
Missing Number
找出缺失的數字,使用數學公式或 XOR。
#283
Easy
Move Zeroes
將陣列中的 0 移到末尾,保持非零元素順序。
#350
Easy
Intersection of Two Arrays II
找出兩個陣列的交集,包含重複元素。
#704
Easy
Binary Search
標準二分搜尋實現。
#11
Medium
Container With Most Water
找出可以容納最多水的兩條線,使用雙指標技巧。
#15
Medium
3Sum
找出陣列中所有總和為 0 的三元組,使用排序和雙指標。
#33
Medium
Search in Rotated Sorted Array
在旋轉排序陣列中搜尋目標值,使用二分搜尋。
#34
Medium
Find First and Last Position of Element
在已排序陣列中找出目標值的起始和結束位置。
#48
Medium
Rotate Image
將 n×n 矩陣順時針旋轉 90 度,要求原地操作。
#53
Medium
Maximum Subarray
找出最大子陣列和,使用 Kadane 算法。
#54
Medium
Spiral Matrix
按螺旋順序返回矩陣的所有元素。
#75
Medium
Sort Colors
對包含 0、1、2 的陣列進行原地排序,使用荷蘭國旗問題算法。
#189
Medium
Rotate Array
旋轉陣列 k 步,使用反轉算法。
#238
Medium
Product of Array Except Self
計算除自身以外陣列的乘積,不使用除法。
#240
Medium
Search a 2D Matrix II
在行列均已排序的矩陣中搜尋目標值。
#287
Medium
Find the Duplicate Number
找出陣列中的重複數字,使用快慢指標。
#4
Hard
Median of Two Sorted Arrays
找出兩個已排序陣列的中位數,時間複雜度要求 O(log(m+n))。
#41
Hard
First Missing Positive
找出缺失的最小正整數,要求 O(n) 時間和 O(1) 空間。
#42
Hard
Trapping Rain Water
計算可以接住的雨水量,使用雙指標或動態規劃。
#135
Hard
Candy
分糖果問題,使用貪心算法的雙向掃描策略。
String
#28
Easy
Find the Index of the First Occurrence
在字串中找到第一個匹配子字串的索引,KMP 算法。
#38
Easy
Count and Say
外觀數列,迭代生成每一項,讀出數字的個數和數字本身。
#58
Easy
Length of Last Word
返回字串中最後一個單詞的長度。
#67
Easy
Add Binary
計算兩個二進制字串的和。
#125
Easy
Valid Palindrome
判斷字串是否為回文,忽略大小寫和非字母數字字符。
#171
Easy
Excel Sheet Column Title
將數字轉換為 Excel 欄位標題,26 進制轉換。
#205
Easy
Isomorphic Strings
判斷兩個字串是否同構,使用哈希表映射。
#242
Easy
Valid Anagram
判斷兩個字串是否為字母異位詞。
#344
Easy
Reverse String
反轉字串,使用雙指標原地操作。
#387
Easy
First Unique Character in a String
找出字串中第一個不重複的字符索引。
#412
Easy
Fizz Buzz
經典 FizzBuzz 問題,根據規則輸出字串。
#3
Medium
Longest Substring Without Repeating Characters
找出最長無重複字符子字串,使用滑動視窗。
#5
Medium
Longest Palindromic Substring
找出最長回文子字串,使用中心擴展或動態規劃。
#49
Medium
Group Anagrams
將字母異位詞分組,使用哈希表和排序。
#91
Medium
Decode Ways
計算數字字串的解碼方法總數,使用動態規劃。
#139
Medium
Word Break
判斷字串是否可以被拆分成字典中的單詞,使用動態規劃。
#10
Hard
Regular Expression Matching
實現正則表達式匹配,支援 '.' 和 '*',使用動態規劃。
#32
Hard
Longest Valid Parentheses
找出最長有效括號子字串的長度,使用動態規劃或堆疊。
#44
Hard
Wildcard Matching
實現萬用字符匹配,支援 '?' 和 '*',使用動態規劃。
#72
Hard
Edit Distance
計算兩個字串的最小編輯距離,使用動態規劃。
#76
Hard
Minimum Window Substring
找出包含所有目標字符的最小子字串,使用滑動視窗。
Hash Table
#136
Easy
Single Number
找出陣列中只出現一次的數字,使用 XOR 位元運算。
#202
Easy
Happy Number
判斷是否為快樂數,使用快慢指標檢測循環。
#128
Medium
Longest Consecutive Sequence
找出最長連續序列的長度,要求 O(n) 時間。
#347
Medium
Top K Frequent Elements
找出前 K 個高頻元素,使用堆積或桶排序。
Tree
#101
Easy
Symmetric Tree
判斷二元樹是否鏡像對稱,使用遞迴或迭代。
#104
Easy
Maximum Depth of Binary Tree
計算二元樹的最大深度。
#112
Easy
Path Sum
判斷是否存在根到葉的路徑和等於目標值。
#226
Easy
Invert Binary Tree
翻轉二元樹,使用遞迴或迭代。
#98
Medium
Validate Binary Search Tree
驗證是否為有效的二元搜尋樹。
#102
Medium
Binary Tree Level Order Traversal
二元樹的層序遍歷,使用佇列實現 BFS。
#124
Hard
Binary Tree Maximum Path Sum
找出二元樹中的最大路徑和,使用後序遍歷。
#297
Hard
Serialize and Deserialize Binary Tree
序列化和反序列化二元樹,使用前序遍歷。
Linked List
#21
Easy
Merge Two Sorted Lists
合併兩個已排序的鏈結串列成一個新的已排序串列。
#83
Easy
Remove Duplicates from Sorted List
從已排序鏈結串列中移除重複元素。
#141
Easy
Linked List Cycle
判斷鏈結串列是否有環,使用快慢指標。
#206
Easy
Reverse Linked List
反轉鏈結串列,使用迭代或遞迴。
#2
Medium
Add Two Numbers
將兩個非空鏈結串列中儲存的數字相加,每個節點包含一位數字。
#23
Hard
Merge k Sorted Lists
合併 k 個已排序的鏈結串列,使用最小堆積優化。
#25
Hard
Reverse Nodes in k-Group
每 k 個節點一組進行翻轉鏈結串列,要求 O(1) 空間。
#146
Hard
LRU Cache
實現 LRU 快取機制,使用雙向鏈結串列和哈希表。
Dynamic Programming
#70
Easy
Climbing Stairs
爬樓梯的方法數,經典動態規劃入門題。
#121
Easy
Best Time to Buy and Sell Stock
只能交易一次的股票最大利潤。
#62
Medium
Unique Paths
計算從左上到右下的不同路徑數,使用動態規劃。
#64
Medium
Minimum Path Sum
找出從左上到右下的最小路徑和。
#122
Medium
Best Time to Buy and Sell Stock II
可以進行多次交易的股票最大利潤,貪心算法。
#198
Medium
House Robber
打家劫舍問題,使用動態規劃。
#279
Medium
Perfect Squares
找出和為 n 的最少完全平方數,使用動態規劃或 BFS。
#300
Medium
Longest Increasing Subsequence
找出最長遞增子序列的長度,使用 DP 或二分搜尋。
#322
Medium
Coin Change
找出湊成總金額的最少硬幣數,使用動態規劃。
#416
Medium
Partition Equal Subset Sum
判斷是否可以將陣列分成兩個和相等的子集,0-1 背包問題。
#45
Hard
Jump Game II
計算跳躍到最後位置的最小次數,使用貪心算法。
#85
Hard
Maximal Rectangle
在二進制矩陣中找出最大矩形,將 2D 問題轉化為多個 1D 柱狀圖。
#188
Hard
Best Time to Buy and Sell Stock IV
最多 k 次交易的股票最大利潤,狀態機 DP。
#312
Hard
Burst Balloons
戳氣球問題,區間 DP 經典題,反向思考最後戳哪個。
Stack & Queue
#20
Easy
Valid Parentheses
驗證括號字串是否有效,使用堆疊資料結構。
#155
Medium
Min Stack
設計支援 O(1) 時間獲取最小值的堆疊。
#739
Medium
Daily Temperatures
找出下一個更高溫度的天數,使用單調棧。
#84
Hard
Largest Rectangle in Histogram
找出柱狀圖中的最大矩形面積,使用單調棧。
#239
Hard
Sliding Window Maximum
找出滑動視窗的最大值,使用單調雙端佇列。
DFS & BFS
#200
Medium
Number of Islands
計算島嶼數量,使用 DFS 或 BFS。
#127
Hard
Word Ladder
找出單詞接龍的最短轉換序列長度,使用 BFS。
#329
Hard
Longest Increasing Path in a Matrix
矩陣中的最長遞增路徑,DFS + 記憶化搜尋。
Backtracking
#79
Medium
Word Search
在字母矩陣中搜尋單詞,使用回溯法。
#37
Hard
Sudoku Solver
使用回溯法解決數獨問題,填充所有空格。
#51
Hard
N-Queens
經典 N 皇后問題,使用回溯法找出所有解法。
Math
#9
Easy
Palindrome Number
判斷一個整數是否為回文數,不使用字串轉換。
#69
Easy
Sqrt(x)
實現 sqrt(x) 函數,返回 x 的平方根的整數部分。
#326
Easy
Power of Three
判斷一個整數是否為 3 的冪次方。