LeetCode Find Median from Data Stream:雙堆動態中位數維護
題目描述 設計數據結構支持兩操作: addNum(int num):從數據流添加整數 findMedian():返回當前所有元素中位數 中位數定義:有序列表
LeetCode 筆記:Happy Number(快樂數)判定算法
題目描述 編寫算法判斷一個數是否為「快樂數」。過程:對任意正整數,反覆替換為各位數字平方和,直到結果為 1(快樂數),或陷入不含 1 的循環(非快樂數)。 示例
LeetCode Game of Life:原地 O(1) 空間演化算法
題目規則 康威生命遊戲:m×n 網格,每細胞生(1)/死(0)。根據 8 鄰居活細胞數演化: 活細胞鄰居 <2 → 死(孤獨) 活細胞鄰居 2/3 → 活 3
LeetCode 從零單刷:Longest Increasing Subsequence (LIS) 完整解析
題目描述 給定無序整數數組,求最長上升子序列長度。示例:[10,9,2,5,3,7,101,18] → [2,3,7,101] 長度 4。要求 O(n²),進階
C/C++ 線程本地存儲 (TLS) 實戰:多線程文件複製緩存隔離
應用場景 多線程並發調用文件複製接口,每線程需獨立緩存區。若用全局 static 緩存,多線程數據污染;若每次分配釋放,內存碎片嚴重。TLS 完美解決:線程創建
LeetCode Missing Number:缺失數字的三種 O(n) 解法
題目描述 給定包含 0, 1, 2, ..., n 中 n 個不同數字的數組,找出缺失的那一個。要求 O(n) 時間、O(1) 額外空間。 示例: [0, 1,
C++ 線程安全單例工廠實現:雙重檢查鎖定模式
背景問題 常見的單例模式使用 static 局部變量(Meyers Singleton),但 C++11 前編譯器不保證其線程安全。即使 C++11 標準化了魔
HDU 2128 Tempter of the Bone II:炸彈牆壁狀態壓縮 BFS
題目大意 N×M 迷宮(≤8×8),牆壁(X)、起點(S)、終點(D)、空地(.)、炸彈(1-9)。初始無炸彈,撿到炸彈可炸牆(消耗 1 炸彈 + 1 秒)。移
LeetCode Add Digits:數字根的數學解法與 O(1) 算法
題目描述 給定非負整數 num,反覆將各位數字相加,直到結果為個位數。例如 38 → 3+8=11 → 1+1=2,返回 2。進階要求:無循環/遞歸,O(1)
ZOJ 3652 Maze:怪物領地與行動力的狀態壓縮 BFS
題目場景 n×m 迷宮(≤50×50),起點 (x1,y1) 終點 (x2,y2)。每回合行動力 l (≤10),移動一格消耗 1,耗盡進入下一回合(行動力恢復
HDU 1401 Solitaire:棋盤遊戲雙向 BFS 狀態壓縮解法
題目大意 8×8 棋盤上有 4 個相同棋子。允許移動:1) 移至相鄰空格(上下左右);2) 跳過相鄰一個棋子落在緊鄰空格(跳棋規則)。給定初始和目標佈局,判斷能
HDU 1254 推箱子:雙重 BFS 經典解法詳解
題目背景 經典推箱子遊戲簡化版:M×N 房間(2≤M,N≤7),有牆壁(1)、箱子(2)、目標(3)、搬運工(4)、空地(0)。搬運工只能推箱子不能拉。箱子推入
HDU 4394 Digital Square:數字平方模數問題解析
題目大意 給定整數 N,求最小非負整數 M,滿足 M² % 10ˣ = N(x=0,1,2,3...)。若不存在輸出 None。多測試用例(T ≤ 1000),
LeetCode 經典題解:Valid Anagram(有效字母異位詞)
題目描述 給定兩個字符串 s 和 t,編寫函數判斷 t 是否為 s 的字母異位詞。 示例: s = anagram, t = nagaram → 返回 tru
React 經典教材《React: Up and Running》閱讀筆記:深入理解 JSX
JSX 轉譯原理解析 轉譯是指獲取原始碼,然後使用舊版瀏覽器能理解的 JavaScript 重寫的過程。雖然兩個版本的語法不同,但功能完全一致。這與 JavaS
React 組件生命周期與狀態管理筆記:Props、State、事件、Mixin 與表格組件實戰
Props 與 PropTypes this.props 為只讀配置屬性,父組件傳遞給子組件。定義 propTypes 可運行時驗證類型,提升可維護性。 St
HDU 2918 Tobo or not Tobo:IDA* 搜索還原 3×3 旋轉拼圖
遊戲規則 3×3 棋盤,數字 1-9。四個旋鈕 A,B,C,D,每個旋鈕旋轉 90° 影響周圍 4 個格子。給定打亂後狀態,限制步數 Y,求最少步數還原到標準狀