📊 複雜度速查表¶
本頁面匯總了 NeetCode 150 所有題目的時間和空間複雜度,方便快速查閱。
按分類查閱¶
Arrays and Hashing¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Contains Duplicate (存在重複元素) | 🟢 Easy | n | 1 |
| Valid Anagram (有效的易位構詞) | 🟢 Easy | n | 1 |
| Two Sum (兩數之和) | 🟢 Easy | n | 1 |
| Group Anagrams (字母異位詞分組) | 🟡 Medium | m | m |
| Top K Frequent Elements (前 K 個高頻元素) | 🟡 Medium | n | n |
| Product of Array Except Self (除自身以外陣列的乘積) | 🟡 Medium | n | - |
| Valid Sudoku (有效的數獨) | 🟡 Medium | 9 | 1 |
| Encode and Decode Strings (字串編碼與解碼) | 🟡 Medium | N | 1 |
| Longest Consecutive Sequence (最長連續序列) | 🟡 Medium | n | n |
Two Pointers¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| 01. Valid Palindrome | 🟢 Easy | n | n |
| Two Sum II - Input Array Is Sorted (兩數之和 II - 輸入已排序) | 🟡 Medium | n | 1 |
| 3Sum (三數之和) | 🟡 Medium | n | 1 |
| Container With Most Water (盛最多水的容器) | 🟡 Medium | n | 1 |
| Trapping Rain Water (接雨水) | 🔴 Hard | n | 1 |
Sliding Window¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Best Time to Buy and Sell Stock (買賣股票的最佳時機) | 🟢 Easy | n | 1 |
| Longest Substring Without Repeating Characters (無重複字元的最長子字串) | 🟡 Medium | n | m |
| Longest Repeating Character Replacement (替換後的最長重複字元子串) | 🟡 Medium | n | 1 |
| Permutation in String (字串的排列包含) | 🟡 Medium | 2 | 1 |
| Minimum Window Substring (最小覆蓋子字串) | 🔴 Hard | n | 1 |
| Sliding Window Maximum (滑動窗口最大值) | 🔴 Hard | n | k |
Stack¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| 01. Valid Parentheses | 🟢 Easy | n | n |
| Min Stack (最小堆疊) | 🟡 Medium | 1 | n |
| Evaluate Reverse Polish Notation (逆波蘭表達式求值) | 🟡 Medium | n | n |
| Generate Parentheses (生成括號) | 🟡 Medium | \ | n |
| Daily Temperatures (每日溫度) | 🟡 Medium | n | n |
| Car Fleet (車隊) | 🟡 Medium | n | n |
| Largest Rectangle in Histogram (直方圖中的最大矩形) | 🔴 Hard | n | n |
Binary Search¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Binary Search (二分搜尋) | 🟢 Easy | \ | 1 |
| Search a 2D Matrix (搜尋二維矩陣) | 🟡 Medium | \ | 1 |
| Koko Eating Bananas (Koko 吃香蕉) | 🟡 Medium | n | 1 |
| Find Minimum in Rotated Sorted Array (尋找旋轉排序陣列中的最小值) | 🟡 Medium | \ | 1 |
| Search in Rotated Sorted Array (在旋轉排序陣列中搜尋) | 🟡 Medium | \ | 1 |
| Time Based Key-Value Store (基於時間的鍵值存儲) | 🟡 Medium | O(N)$ for get. | N |
| Median of Two Sorted Arrays (兩個排序陣列的中位數) | 🔴 Hard | \ | 1 |
Linked List¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Reverse Linked List (反轉鏈結串列) | 🟢 Easy | n | 1 |
| Merge Two Sorted Lists (合併兩個排序鏈表) | 🟢 Easy | n | 1 |
| Reorder List (重新排序鏈結串列) | 🟡 Medium | n | 1 |
| Remove Nth Node From End of List (移除鏈結串列倒數第 N 個節點) | 🟡 Medium | L | 1 |
| Copy List with Random Pointer (複製含隨機指標的鏈結串列) | 🟡 Medium | n | n |
| Add Two Numbers (兩數相加) | 🟡 Medium | \ | \ |
| Linked List Cycle (鏈結串列中的環) | 🟢 Easy | n | 1 |
| Find the Duplicate Number (尋找重複的數字) | 🟡 Medium | n | 1 |
| LRU Cache (最近少使用緩存) | 🟡 Medium | 1 | c |
| Merge k Sorted Lists (合併 k 個排序鏈表) | 🔴 Hard | N | 1 |
| Reverse Nodes in k-Group (k 個一組反轉鏈結串列) | 🔴 Hard | n | 1 |
Trees¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Invert Binary Tree (翻轉二元樹) | 🟢 Easy | n | h |
| Maximum Depth of Binary Tree (二元樹的最大深度) | 🟢 Easy | n | h |
| Diameter of Binary Tree (二元樹的直徑) | 🟢 Easy | n | h |
| Balanced Binary Tree (平衡二元樹) | 🟢 Easy | n | h |
| Same Tree (相同的樹) | 🟢 Easy | n | h |
| Subtree of Another Tree (另一棵樹的子樹) | 🟢 Easy | M | M |
| Lowest Common Ancestor of a BST (二元搜尋樹的最近共同祖先) | 🟡 Medium | h | 1 |
| Binary Tree Level Order Traversal (二元樹的層序遍歷) | 🟡 Medium | n | n |
| Binary Tree Right Side View (二元樹的右視圖) | 🟡 Medium | n | n |
| Count Good Nodes in Binary Tree (計算二元樹中的好節點) | 🟡 Medium | n | h |
| Validate Binary Search Tree (驗證二元搜尋樹) | 🟡 Medium | n | h |
| Kth Smallest Element in a BST (BST 中第 K 小的元素) | 🟡 Medium | H | H |
| Construct Binary Tree from Preorder and Inorder Traversal (從前序與中序遍歷構造二元樹) | 🟡 Medium | n | n |
| Binary Tree Maximum Path Sum (二元樹中的最大路徑和) | 🔴 Hard | n | h |
| Serialize and Deserialize Binary Tree (二元樹的序列化與反序列化) | 🔴 Hard | n | n |
Tries¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Implement Trie (Prefix Tree) (實作字典樹) | 🟡 Medium | L | N |
| Design Add and Search Words Data Structure (設計新增與搜尋單字的資料結構) | 🟡 Medium | O(N \times L)$ for generic search. | N |
| Word Search II (單字搜尋 II) | 🔴 Hard | M | K |
Heap¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Kth Largest Element in a Stream (數據流中的第 K 大元素) | 🟢 Easy | - | k |
| Last Stone Weight (最後一顆石頭的重量) | 🟢 Easy | n | n |
| K Closest Points to Origin (最接近原點的 K 個點) | 🟡 Medium | N | k |
| Kth Largest Element in an Array (陣列中的第 K 大元素) | 🟡 Medium | N | 1 |
| Task Scheduler (任務調度器) | 🟡 Medium | N | 1 |
| Design Twitter (設計推特) | 🟡 Medium | O(TotalTweets)$. 太慢。 | U |
| Find Median from Data Stream (從數據流中尋找中位數) | 🔴 Hard | - | N |
Backtracking¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Subsets (子集) | 🟡 Medium | N | N |
| Combination Sum (組合總和) | 🟡 Medium | N | T |
| Permutations (全排列) | 🟡 Medium | N | N |
| Subsets II (子集 II) | 🟡 Medium | N | N |
| Combination Sum II (組合總和 II) | 🟡 Medium | 2 | N |
| Word Search (單字搜尋) | 🟡 Medium | M | L |
| Palindrome Partitioning (分割回文串) | 🟡 Medium | N | N |
| Letter Combinations of a Phone Number (電話號碼的字母組合) | 🟡 Medium | 4 | N |
| N-Queens (N 皇后問題) | 🔴 Hard | N | N |
1D DP¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Climbing Stairs (爬樓梯) | 🟢 Easy | N | 1 |
| Min Cost Climbing Stairs (使用最小花費爬樓梯) | 🟢 Easy | N | 1 |
| House Robber (打家劫舍) | 🟡 Medium | N | 1 |
| House Robber II (打家劫舍 II) | 🟡 Medium | N | 1 |
| Longest Palindromic Substring (最長回文子字串) | 🟡 Medium | N | 1 |
| Palindromic Substrings (回文子字串個數) | 🟡 Medium | N | 1 |
| Decode Ways (解碼方法) | 🟡 Medium | N | 1 |
| Coin Change (零錢兌換) | 🟡 Medium | A | A |
| Maximum Product Subarray (最大乘積子陣列) | 🟡 Medium | N | 1 |
| Word Break (單字拆分) | 🟡 Medium | N | N |
| Longest Increasing Subsequence (最長遞增子序列) | 🟡 Medium | N | N |
| Partition Equal Subset Sum (分割等和子集) | 🟡 Medium | N | S |
2D DP¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Unique Paths (不同路徑) | 🟡 Medium | M | N |
| Longest Common Subsequence (最長公共子序列) | 🟡 Medium | M | M |
| Best Time to Buy and Sell Stock with Cooldown (買賣股票的最佳時機含冷凍期) | 🟡 Medium | N | 1 |
| Coin Change II (零錢兌換 II) | 🟡 Medium | A | A |
| Target Sum (目標和) | 🟡 Medium | N | S |
| Interleaving String (交錯字串) | 🟡 Medium | M | M |
| Longest Increasing Path in a Matrix (矩陣中的最長遞增路徑) | 🔴 Hard | M | M |
| Distinct Subsequences (不同的子序列) | 🔴 Hard | M | N |
| Edit Distance (編輯距離) | 🟡 Medium | M | M |
| Burst Balloons (戳氣球) | 🔴 Hard | N | N |
| Regular Expression Matching (正規表示式匹配) | 🔴 Hard | M | M |
Greedy¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Maximum Subarray (最大子陣列和) | 🟡 Medium | N | 1 |
| Jump Game (跳躍遊戲) | 🟡 Medium | N | 1 |
| Jump Game II (跳躍遊戲 II) | 🟡 Medium | N | 1 |
| Gas Station (加油站) | 🟡 Medium | N | 1 |
| Hand of Straights (一手順子) | 🟡 Medium | N | N |
| Merge Triplets to Form Target Triplet (合併三元組以形成目標三元組) | 🟡 Medium | N | 1 |
| Partition Labels (劃分字母區間) | 🟡 Medium | N | 1 |
| Valid Parenthesis String (有效的括號字串) | 🟡 Medium | N | 1 |
Intervals¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Insert Interval (插入區間) | 🟡 Medium | N | N |
| Merge Intervals (合併區間) | 🟡 Medium | N | N |
| Non-overlapping Intervals (無重疊區間) | 🟡 Medium | N | 1 |
| Meeting Rooms (會議室) | 🟢 Easy | N | 1 |
| Meeting Rooms II (會議室 II) | 🟡 Medium | N | N |
| Minimum Interval to Include Each Query (包含每個查詢的最小區間) | 🔴 Hard | N | N |
Graphs¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Number of Islands (島嶼數量) | 🟡 Medium | M | M |
| Clone Graph (複製圖) | 🟡 Medium | V | V |
| Max Area of Island (最大的島嶼面積) | 🟡 Medium | M | M |
| Pacific Atlantic Water Flow (太平洋大西洋水流) | 🟡 Medium | M | M |
| Surrounded Regions (被圍繞的區域) | 🟡 Medium | M | M |
| Rotting Oranges (腐爛的橘子) | 🟡 Medium | M | M |
| Walls and Gates (牆與門) | 🟡 Medium | M | M |
| Course Schedule (課程表) | 🟡 Medium | V | V |
| Course Schedule II (課程表 II) | 🟡 Medium | V | V |
| Redundant Connection (冗餘連接) | 🟡 Medium | N | N |
| Number of Connected Components in an Undirected Graph (無向圖中的連通分量數量) | 🟡 Medium | E | N |
| Graph Valid Tree (圖是否為樹) | 🟡 Medium | N | N |
| Word Ladder (字詞接龍) | 🔴 Hard | M | M |
Advanced Graphs¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Reconstruct Itinerary (重建行程) | 🔴 Hard | E | V |
| Min Cost to Connect All Points (連接所有點的最小費用) | 🟡 Medium | N | N |
| Network Delay Time (網絡延遲時間) | 🟡 Medium | E | V |
| Swim in Rising Water (在上升的水中游泳) | 🔴 Hard | N | N |
| Alien Dictionary (外星人字典) | 🔴 Hard | C | 1 |
| Cheapest Flights Within K Stops (K 站中轉內最便宜的航班) | 🟡 Medium | K | N |
Math Geometry¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Rotate Image (旋轉圖像) | 🟡 Medium | N | 1 |
| Spiral Matrix (螺旋矩陣) | 🟡 Medium | M | 1 |
| Set Matrix Zeroes (矩陣置零) | 🟡 Medium | M | 1 |
| Happy Number (快樂數) | 🟢 Easy | \ | 1 |
| Plus One (加一) | 🟢 Easy | N | 1 |
| Pow(x, n) (數值的 n 次方) | 🟡 Medium | \ | 1 |
| Multiply Strings (字符串相乘) | 🟡 Medium | M | M |
| Detect Squares (檢測正方形) | 🟡 Medium | - | N |
Bit Manipulation¶
| 題目 | 難度 | Time | Space |
|---|---|---|---|
| Single Number (只出現一次的數字) | 🟢 Easy | N | 1 |
| Number of 1 Bits (位元 1 的個數) | 🟢 Easy | k | 1 |
| Counting Bits (計算位元) | 🟢 Easy | N | N |
| Reverse Bits (顛倒位元) | 🟢 Easy | 1 | 1 |
| Missing Number (缺失數字) | 🟢 Easy | N | 1 |
| Sum of Two Integers (兩整數之和) | 🟡 Medium | 1 | 1 |
| Reverse Integer (反轉整數) | 🟡 Medium | \ | 1 |
常見複雜度解釋¶
| 複雜度 | 說明 | 常見場景 |
|---|---|---|
| O(1) | 常數時間 | Hash Table 查找 |
| O(log n) | 對數時間 | Binary Search |
| O(n) | 線性時間 | 遍歷陣列一次 |
| O(n log n) | 排序時間 | Merge Sort, Quick Sort |
| O(n²) | 平方時間 | 雙層迴圈、DP 表格 |
| O(2ⁿ) | 指數時間 | 暴力遞迴、Backtracking |
| O(n!) | 階乘時間 | 全排列 |
空間複雜度提示¶
- O(1): 只用固定數量的變數
- O(n): 需要額外陣列或 Hash Table
- O(h): 遞迴棧深度,h 為樹高
- O(m × n): 2D DP 表格