OpenCV 圖像直方圖計算:calcHist 詳解與封裝類實戰
calcHist 函數詳解 OpenCV calcHist 功能強大但參數繁多,常用原型: void calcHist(const Mat* images, i
LeetCode 144 二叉樹前序遍歷:非遞歸棧模擬法詳解
題目要求 給定二叉樹根節點,返回前序遍歷(根→左→右)節點值列表。要求非遞歸實現。 棧模擬核心邏輯 前序遍歷訪問節點後需先處理左子樹,右子樹暫存。利用棧後進先
LeetCode 遞增三元子序列:貪心雙變量 O(n) 時間 O(1) 空間
題目描述 給定無序數組,判斷是否存在下標 i < j < k 使 nums[i] < nums[j] < nums[k]。要求 O(n)
LeetCode 尋找重複數:鏈表環檢測映射法 O(n) 時間 O(1) 空間
題目約束 數組長度 n+1,元素範圍 [1, n],至少一個重複。 只有一個重複數字(可重複多次)。 不可修改數組、O(1) 額外空間、時間 O(n²) 以下
LeetCode 131 分割回文串:DFS 回溯算法深度解析
題目描述 給定字符串 s,將其分割成若干子串,使每個子串均為回文。返回所有可能的分割方案。 示例:s = aab → [[aa,b], [a,a,b]] 核心
C++ 運算符重載:前綴 ++ 與後綴 ++ 的區別與實現詳解
核心區別 C++ 通過虛擬參數區分前綴與後綴重載: Type operator++() —— 前綴 ++a,無參數。 Type operator++(int)
OpenCV 實現 PS 濾鏡:漩渦效果完整代碼解析
效果展示 漩渦濾鏡將圖像以中心為原點,根據極坐標角度進行非線性扭曲,產生旋渦狀視覺效果。 核心算法原理 建立輸出圖像 Img_out,尺寸與輸入一致。
OpenJudge 百煉習題:競賽計分系統 C++ 解法詳解
題目背景 三支隊伍(編號 1、2、3)輪流答題,共 n 輪。每輪每隊結果為:right(+10 分)、wrong(-10 分)、give-up(0 分)。最終按
LeetCode 14 最長公共前綴:橫向掃描法詳解與 Java 實現
題目描述 編寫一個函數,查找字符串數組中的最長公共前綴。若不存在公共前綴,返回空字符串 。 核心思路:橫向掃描 將數組第一個字符串作為初始公共前綴 prefi
深入解析鏈表:從基礎分類到進階應用與優化
鏈表的核心分類與特性 鏈表作為基礎數據結構,根據指針方向與連接方式主要分為三類: 單鏈表 節點僅包含指向後繼節點的指針。插入操作常見兩種模式:頭插法僅需維護頭節
OpenCV 實戰:PS 濾鏡波浪效果實現——余弦水平位移變換
效果原理:水平方向余弦位移 波浪效果通過對每一行像素施加水平正弦/余弦位移實現:位移量隨垂直座標週期性變化,模擬水面波紋的視覺感受。 核心數學模型 // 參
LeetCode 20. 有效括號:棧的經典應用與 C++ 實現
題目描述 給定一個只包含 (, ), {, }, [, ] 的字符串,判斷括號是否有效。有效條件:左括號必須用相同類型的右括號閉合,且閉合順序正確。 核心思路
OpenCV 實戰:PS 濾鏡水波紋效果實現原理與代碼詳解
效果原理:極坐標正弦變換 水波紋效果通過像素座標重映射實現:以圖像中心為極坐標原點,根據像素到中心的距離 r0 計算位移量,模擬水波從中心向外擴散的視覺效果。
數據結構核心:數組深度解析——內存佈局、初始化、多維訪問與排序應用
數組的本質與內存佈局 數組是最基礎的線性數據結構,特點是連續內存、固定大小(靜態數組)、隨機訪問 O(1)。理解其在進程虛擬地址空間的分布至關重要: 棧區
OpenCV 實戰:Perlin Noise 柏林噪聲生成與雲霧效果實現
什麼是 Perlin Noise? Perlin Noise 是一種梯度噪聲算法,由 Ken Perlin 於 1983 年發明,廣泛用於程序化紋理生成(雲霧、
C 與 C++ 大師論戰:從語言特性到工程哲學的深度解讀
引言:一場經典的知乎討論 關於 C 語言與 C++ 的優劣之爭由來已久。知乎上曾有一場由多位技術大牛參與的討論,涵蓋語言設計、開源社區文化、工程實踐等多個維度,
LeetCode 110. 平衡二叉樹:遞歸求解詳解
題目概述 給定一棵二叉樹,判斷它是否為高度平衡的二叉樹。根據定義,一棵高度平衡二叉樹要求每個節點的左右子樹高度差不超過 1。 核心思路:後序遍歷 + 剪枝 採