CodingMan.cc

Code Your True Nature

探討經典的 3Sum 問題。本文解析如何將三數之和降維思考為多次的 Two Sum,將複雜度從 O(N^3) 優化至 O(N^2)。文中介紹兩種主流演算法策略,協助讀者在面對海量數列時,依然能高效找出總和為零的所有組合。

解析 LeetCode 經典題目「盛最多水的容器」。本文教學如何運用夾擠定理與雙指針策略,透過不斷更換較低高度的指針來逼近最大面積。文中也分享了紀錄最高高度以加速計算的實作細節,優化整體演算法效能。

探討如何將數列向右旋轉 k 次。本文分享 O(1) 空間複雜度的優化策略,並介紹 Python 中 nums[:] 的記憶體修改技巧,讓開發者能在不使用額外陣列的情況下,直接在原地完成數列移動,達成高效且省空間的實作。

要求將包含負數的已排序數列進行平方後再次排序。本文探討如何利用雙指針從兩端向中間掃描的技巧,巧妙處理負數平方後的數值變化,達成在 O(N) 線性時間內完成平方與排序的優化解法。

解析如何在不使用額外空間(O(1) space)的情況下計算矩陣中的戰艦數量。關鍵在於只統計戰艦的「左上角」起點。透過檢查每個戰艦格位上方與左方是否為空,能精確識別出每艘船的首位,達成高效且簡潔的計數邏輯。

針對已排序數列,尋找目標值的索引或其應插入的位置。本文展示二元搜尋(Binary Search)的變體應用,透過不斷折半範圍,能以對數級時間複雜度快速鎖定定位。這是一篇掌握排序數列搜尋與邊界處理技巧的基礎筆記。

面對尋找第一個損壞版本的問題,本文展示二元搜尋(Binary Search)的經典應用。透過不斷折半縮小搜尋範圍,能以對數級時間複雜度快速鎖定故障點,是開發者在處理有序範圍搜尋問題時的必備演算法知識。

LeetCode 必修基礎題,實作標準的二元搜尋。本文回歸演算法核心,展示如何透過 left、right 指針折半縮小搜尋區間,並精確找出目標值的索引。這是一篇適合初學者鞏固 O(log N) 搜尋效率概念的範例實作。

這是一篇關於 LeetCode 第 103 題的解題筆記。題目要求對二元樹進行之字形(Zigzag)層序遍歷。本文解析如何運用廣度優先搜尋(BFS)策略,並透過每層順序翻轉的技巧,高效搜集並排列每一層的節點數值。

0%