瀏覽標記為 Blind 75 的 15 篇筆記。
記錄我的 House Robber 解法,拆解 p1、p2 為什麼可行,再改成狀態定義更清楚的 O(n) 時間、O(1) 額外空間版本。
記錄我的 Climbing Stairs 解題過程,從排列組合誤區、指數時間遞迴,走到 O(n) 時間與 O(1) 額外空間的 rolling state。
記錄我的 Maximum Product Subarray 解題過程,從正負號分支改成 O(n) 的最大與最小雙狀態,並用反例、不變量及暴力比對說明正確性。
記錄我的 Maximum Subarray 解題過程,從 O(n²) 向左掃描改成 O(n),解釋 endingHere 與 best 的差別、全負數邊界與可執行測試。
記錄我寫的除法版與前綴、後綴乘積版,釐清多個零、更新順序、正確性,以及 O(1) 額外空間與 O(n) 輸出空間的差別。
從全域 Set 的漏解問題,到排序與雙指標,再逐步說明 3Sum 的三個去重條件、正確性、複雜度與 assertions。
保留我的雙指標解法,補上暴力解對照、捨棄較矮端點的正確性證明,以及 O(n) 時間與 O(1) 空間分析。
保留先清理字串的雙指標解法,再說明 charCodeAt 版本如何原地跳過非英數字元。
保留這次的 frequency-counting sliding window 解法,說明 maxFreq 為何可以不隨左指標倒退。
保留一次回退重掃的嘗試,說明為何最壞為 O(n²),再改為單次走訪的 Map sliding window。
整理 Group Anagrams 的排序分組解法,找出重複複製陣列的成本,並比較固定字元集的計數簽名。
先以 Map 計數後排序找出最高頻元素,再用 bucket 消除 O(n log n) 的排序成本。
比較排序、Map 計數與固定大小計數陣列,說明 Valid Anagram 的正確性、不變量與複雜度。
從兩層迴圈列舉配對,改用 Map 記錄先前值與索引,說明補數查詢、不變量與預期 O(n) 解法。
比較整個 Set 的大小與陣列長度,或在一次掃描中提早找出重複值,說明 Set 解法的正確性與預期 O(n) 複雜度。
Google 服務設定
分析與廣告服務會在你選擇後才載入。