HDOJ 2476 String Painter:區間 DP 最少著色轉換次數
題目大意 給定兩個等長字串 A 和 B(長度 ≤ 100)。初始畫布為 A,目標變為 B。每次操作可選擇一個連續區間,將其全部塗成同一字符。求最少操作次數。
HDU 1695:GCD 極值問題——線性篩預處理歐拉函數與容斥原理計算互質對數
題目大意 給定 a, b, c, d, k,求滿足 gcd(x, y) = k 的整數對 (x, y) 數量,其中 a ≤ x ≤ b,c ≤ y ≤ d。多測
微軟面試 100 題第 14 題:有序陣列中兩數之和為目標值(雙指針對撲 O(n))
題目 給定已升序排序的陣列和目標值 target,找出兩數使其和等於 target。要求 O(n) 時間。多解輸出任意一組。 雙指針對撲法 左指針 l = 0
微軟面試 100 題第 13 題:鏈表倒數第 k 個節點(雙指針一次遍歷)
題目 輸入單向鏈表頭指針和整數 k,返回倒數第 k 個節點(k=1 為尾節點)。 雙指針法(快慢指針) 快指針 fast 先走 k-1 步。若走到 null
微軟面試 100 題第 12 題:求 1+2+...+n 禁用乘除循環判斷(位運算/構造函數/模板元編程)
題目 計算 S = 1+2+...+n,不能使用 * / for while if else switch ?: 等關鍵字及條件判斷。 方法一:位運算模擬乘
微軟面試 100 題第 11 題:二元樹最大節點距離(樹的直徑 / 後序 DFS 計算深度)
題目 將二元樹視為無向圖(父子雙向連接),定義距離為邊數。求任意兩節點間最大距離(即樹的直徑)。 核心觀察:直徑 = 某節點左子樹深度 + 右子樹深度 對任意
微軟面試 100 題第 9 題:驗證後序遍歷序列是否為 BST(遞歸分治驗證)
題目 給定整數陣列,判斷是否為某 BST 的後序遍歷結果。後序:左、右、根。BST 性質:左 < 根 < 右。 遞歸驗證邏輯 函數 verify(seq, s
微軟面試 100 題第 7 題:判斷兩單向鏈表是否相交(含環情況完整處理)
題目 給定兩單向鏈表頭指針 h1, h2,判斷是否相交。假設無環。擴展:1) 可能有環;2) 求第一個交點。 無環情況:尾節點判斷法 若無環,相交 ⇔ 尾節點
微軟面試 100 題第 6 題:自描述數字序列(十位數字自我計數迭代求解)
題目 給定上排固定十個數字 0,1,2,3,4,5,6,7,8,9,在下排填入十個數字,使下排第 i 個數字等於上排數字 i 在下排中出現的次數。即求長度為 1
微軟面試 100 題第 5 題:最小的 k 個數——堆選擇與快速選擇兩種 O(n log k) / O(n) 解法
題目 輸入 n 個整數,輸出最小的 k 個。n 可大,k ≪ n 時需高效算法。 解法一:大根堆(維護大小為 k 的堆) 遍歷陣列,維護一個大小為 k 的最大
微軟面試 100 題第 4 題:二元樹中和為定值的路徑(非遞歸 DFS + 棧回溯)
題目 給定二元樹根節點和整數 target,打印所有從根到葉節點路徑上節點值之和等於 target 的路徑。 非遞歸深度優先搜尋(顯式棧) 遞歸最簡單,但面試
微軟面試 100 題第 3 題:最大子陣列和(Kadane 算法 / 動態規劃)
題目 給定整數陣列(含正負),找出連續子陣列的最大和。要求 O(n) 時間。 動態規劃推導 定義 dp[i] 為「以 a[i] 結尾的最大子陣列和」。轉移:
微軟面試 100 題第 2 題:O(1) 實現 min() 的堆疊(輔助堆疊法)
題目 設計一個堆疊,支持 push、pop、min 三種操作,均要求 O(1) 時間複雜度。 核心思路:輔助最小值堆疊 主堆疊存數據,輔助堆疊 minStac
微軟面試 100 題第 1 題:BST 轉排序雙向鏈表(中序遍歷就地修改指針)
題目 輸入一棵二元搜尋樹(BST),將其轉換為排序的雙向鏈表。不允許創建新節點,只能調整指針。左指針作為 prev,右指針作為 next。 核心思路:中序遍歷
後綴數組求最長公共子串(LCS):POJ 2774 完整解析與 DC3/倍增算法實現
問題描述 給定兩個字串 S1、S2(長度總和 ≤ 10⁶),求它們的最長公共子串長度。 後綴數組核心思想 將兩串連接:S = S1 + $ + S2($ 為
POJ 3565 Ants:螞蟻與樹的不相交匹配——調整法與 KM 算法兩種解法
問題描述 給定 n 隻螞蟻和 n 棵樹的平面坐標,需建立一一對應,使連接線段兩兩不相交。輸出任意一組合法匹配(樹的編號)。 解法一:幾何調整法(構造性證明,極
POJ 3686 The Windys:最大權匹配(KM 算法)解決任務調度問題
問題建模 有 n 台機器、n 個玩具。玩具 i 在機器 j 上耗時 t_{ij}。每台機器處理一系列玩具,總耗時為完成時間之和(流水線模型):若機器處理順序為
HDU 4353:最小面積雷密度三角形——計算幾何與預處理優化
題目大意 給定 n 個頂點(n ≤ 200)和 m 個地雷(m ≤ 500),從頂點中選三個構成三角形,使「三角形面積 / 內部地雷數」的比值最小。輸出最小比值