LeetCode Word Search:矩陣 DFS 回溯查找單詞
題目 給定 m×n 字符矩陣 board 和字符串 word,判斷能否在矩陣中按上下左右相鄰順序找到 word。同一格子不可重複使用。 DFS + 回溯 從
LeetCode Wildcard Matching:動態規劃 O(mn) 解法
題目 實現通配符匹配:? 匹配任意單字符,* 匹配任意字符串(含空)。判斷模式 p 是否匹配文本 s。 DP 狀態定義 dp[i][j]:s[0..i-1]
Codeforces 398D Instant Messenger:平方根分解處理動態圖查詢
題目大意 動態無向圖,支持四種操作: O u:用戶 u 上線 F u:用戶 u 下線 A u v:添加邊 (u,v) D u v:刪除邊 (u,v) C u:
LeetCode Combinations:DFS 生成所有組合
題目 給定整數 n 和 k,返回從 1..n 中選取 k 個數的所有組合(順序無關)。 例:n=4, k=2 → [[1,2],[1,3],[1,4],[2,3
LeetCode Linked List Cycle:快慢指針判環(Floyd 算法)
題目 給定單鏈表頭節點,判斷是否存在環。要求 O(n) 時間、O(1) 空間。 快慢指針原理 慢指針 walker 每次 1 步,快指針 runner 每次
判斷兩字符串是否為變位詞:字符計數法 O(n)
題目 給定兩字符串 s1、s2,判斷是否互為變位詞(Anagram):字符種類與次數完全相同,順序可不同。例如 abbfcad 與 facbdab。 核心思想
LeetCode Linked List Cycle II:找環入口節點(Floyd 算法進階)
題目 給定單鏈表頭節點 head,判斷是否有環,若有則返回環的入口節點,否則返回 null。要求 O(n) 時間、O(1) 空間。 數學推導 設: 頭節點到
POJ 2524 Ubiquitous Religions:並查集統計宗教派別數
題目大意 有 n 個學生(1..n),m 對關係表示兩人信仰同一宗教。宗教傳遞性:若 A=B 且 B=C 則 A=C。求共有多少個不同宗教(連通分量數)。多組測
PAT 1033 To Fill or Not to Fill:貪心算法解加油站最小花費
題目背景 汽車油箱容量 Cmax,平均油耗 Davg(單位距離耗油),目標距離 D。沿途 N 個加油站,每站有價格 Pi 和距離起點 Di。起始油箱為空。求最小
HDU 1232 通關工程:並查集求連通分量
題目大意 給定 N 個城市(編號 1..N)和 M 條雙向道路,每條道路連接兩個城市。求最少再建幾條路,使任意兩城市互達(即圖連通)。 模型轉化 城市 →
jQuery 1.6+ 破壞性變更:.attr('checked') 返回 "checked"/undefined 的正確處理
問題現象 升級 jQuery 1.6+ 後,原本 $(#cb).attr(checked) 返回 true/false,現返回 checked(字符串)或 un
解決 libcurl 多線程環境下 SIGPIPE 導致 Core Dump 問題
現象 多線程程序中使用 libcurl 進行 HTTP 請求,隨機收到 SIGPIPE 信號導致進程崩潰產生 core 文件。典型堆棧顯示在 send()/wr
C++ new/delete 底層機制揭秘:從彙編看內存分配與懸垂指針
實驗環境 編譯器:MSVC (VS2010) Debug 模式 代碼片段: int *obj = new int(6); delete obj; int *o
C++11 Lambda 表達式完整指南:語法、捕獲、實現原理
Lambda 是什麼? 「一個能捕獲作用域內變量的匿名函數對象。」—— cppreference 本質上,編譯器將 Lambda 轉換為一個帶有 operato
C++11 核心特性深度解析:右值引用與移動語義
為什麼需要右值引用? C++98 中只有左值引用(T&),臨時對象(右值)只能綁定到 const T&,導致無法修改臨時對象,也無法實現資源「轉移」而非「拷貝」
從零手寫一個輕量級 C++ 協程庫(基於 ucontext)
動機與設計目標 C++ 標準庫直到 C++20 才引入原生協程,且 Boost.Coroutine 接口較繁瑣。參考 Lua 協程的極簡風格,僅需四個核心接口即
HDU 2364 Escape:帶方向限制的 BFS 最短路徑
題目背景 在一個 N x M 的網格地圖中,@ 為起點,# 為障礙,. 為可通行區域。要求從起點走到任意邊界格子的最短步數。特殊移動規則:「能拐彎時不能直走,否
LeetCode 經典題:Simplify Path(簡化 Unix 路徑)
題目大意 給定一個 Unix 風格的絕對路徑,將其簡化為規範路徑。規則如下: . 表示當前目錄,可忽略。 .. 表示上一級目錄,若可能則回退一級。 多個連續斜