106 lines
3.1 KiB
Cheetah
106 lines
3.1 KiB
Cheetah
# [題目編號] 題目名稱
|
||
|
||
## 題目資訊
|
||
- **難度**: Easy/Medium/Hard
|
||
- **標籤**: Array, Hash Table, Two Pointers, Sliding Window, Greedy, DP, Graph, Tree, Math, etc.
|
||
- **題目連結**: [LeetCode](https://leetcode.com/problems/xxx/)
|
||
- **練習日期**: YYYY-MM-DD
|
||
- **目標複雜度**: 時間 O(?), 空間 O(?)
|
||
|
||
## 題目描述
|
||
> 在這裡貼上題目的完整描述(或摘要)
|
||
|
||
## 先備條件與限制
|
||
- 輸入限制:n ∈ [?, ?]、值域 ∈ [?, ?]、是否有重複、是否有負數/零
|
||
- 回傳/輸出格式:...
|
||
- 其他:排序是否允許改變輸入、是否需穩定、是否需就地(in-place)
|
||
|
||
## 解題思路
|
||
|
||
### 初步分析(快速定位問題類型)
|
||
- 問題類型:如 雙指針 / 滑動視窗 / 排序 + 掃描 / 貪心 / DP / 單調結構 / 前綴和 / 二分 / 位運算 ...
|
||
- 關鍵觀察:列出 2-4 點(不等式關係、單調性、區間性質、可分解性)
|
||
- 目標複雜度理由:為什麼 O(n) 或 O(n log n) 足夠/必要?
|
||
|
||
### 解法比較
|
||
1. **解法 A(基準/暴力/直接枚舉)**
|
||
- 思路:步驟 1-2-3
|
||
- 正確性:為什麼不會漏/不會重?
|
||
- 複雜度:時間 O(?)、空間 O(?)
|
||
- 優缺點:易寫/慢;好理解/不通過大資料
|
||
|
||
2. **解法 B(優化:排序/雙指針/結構)**
|
||
- 思路:步驟 1-2-3(指出與解法 A 最大差異)
|
||
- 正確性:單調性/貪心選擇/狀態定義 的論證要點
|
||
- 複雜度:時間 O(?)、空間 O(?)
|
||
- 優缺點:通過大資料/實作較複雜;可讀性需注意
|
||
|
||
3. (可選)**解法 C(進一步優化/其他路線)**
|
||
- 思路、正確性、複雜度、優缺點
|
||
|
||
### 乾跑(Dry Run)
|
||
使用一組小範例逐步展示索引/指標/狀態如何變化(建議附上 3-5 步驟)。
|
||
|
||
## 實作細節與 API 設計
|
||
|
||
### C# 方法簽名
|
||
```csharp
|
||
public class Solution {
|
||
// TODO: 根據題意調整簽名
|
||
public int Solve(int[] nums) {
|
||
// ...
|
||
}
|
||
}
|
||
```
|
||
|
||
### Go 方法簽名
|
||
```go
|
||
// TODO: 根據題意調整簽名
|
||
func solve(nums []int) int {
|
||
// ...
|
||
}
|
||
```
|
||
|
||
### 實作要點 / 常見陷阱
|
||
- 邊界:空集合、單元素、全相等、極值(INT_MIN/INT_MAX)
|
||
- 去重:排序後跳重複、集合/哈希去重
|
||
- 早停:提早終止條件(例如 window 擴不動就停)
|
||
- 精度/溢位:除法、乘法、64 位整數
|
||
|
||
## 測試案例
|
||
|
||
### 範例輸入輸出
|
||
```
|
||
Input: ...
|
||
Output: ...
|
||
Explanation: ...
|
||
```
|
||
|
||
### 邊界與特殊情況清單
|
||
- [ ] 空陣列/空字串
|
||
- [ ] 單一元素 / 全相同 / 全遞增 / 全遞減
|
||
- [ ] 含負數 / 含 0 / 大數
|
||
- [ ] 有重複值 / 需去重
|
||
- [ ] 大資料壓力測試(n 接近上限)
|
||
|
||
### 對拍/隨機測試(可選)
|
||
- 與暴力解法對拍 1000 次;隨機生成測資,確保輸出一致
|
||
|
||
## 複雜度分析
|
||
- 最壞:時間 O(?)、空間 O(?)
|
||
- 平均:時間 O(?)
|
||
- 最佳:時間 O(?)(若有)
|
||
|
||
## 相關題目與 Follow-up
|
||
- [題目編號] 題目名稱(相同套路)
|
||
- Follow-up:若輸入動態變化/資料流版本/線上查詢如何處理?
|
||
|
||
## 學習筆記
|
||
- 今天學到:
|
||
- 卡住點與修正:
|
||
- 下次優化想法:
|
||
|
||
---
|
||
**總結**:這題的核心在於 ______,適合練習 ______ 技巧。
|
||
|