C++ unique_ptr get() 陷阱:臨時物件生命週期導致崩潰分析
問題現象 將 unique_ptr::get() 返回的原始指標賦值給普通指標,後續使用導致崩潰。 正常用法對比 draw(); // 正常 /
C++14 二進制字面值常量:0b 前綴支援
新特性 C++14 引入二進制字面值常量,使用 0b 或 0B 前綴,稱為 binary literals。 基本用法 void WriteBinaryLit
C++14 記憶體分配效能優化:編譯器層面的分配合併與消除
背景動機 記憶體分配與回收已成為現代系統的關鍵成本。優化系統效能需要根據應用程式的動態行為調整分配策略,或利用應用提供的線索採用不同策略。 現有標準的問題 當
LeetCode K 組翻轉鏈表:遞歸與迭代雙解法詳解
題目描述 將單向鏈表每 k 個節點一組進行翻轉,尾部不足 k 個保持原序。限制: 不可修改節點值,只能調整指標 僅使用常數額外空間 範例: 輸入: 1→2
C++ 智能指標 unique_ptr 實戰系列:利用 RAII 消除巢狀 if-else
痛點:錯誤處理導致的巢狀地獄 典型場景:建立物件 A,再用 A 建立物件 B,每一步都可能失敗需清理已分配資源。 傳統 if-else 寫法 bool Ini
C++ 智能指標 unique_ptr 實戰系列:核心成員函數完整解析
前言 本文系統梳理 std::unique_ptr 的核心成員函數:operator=、operator bool、reset、swap、get、release
LeetCode 移除元素:雙指針原地刪除指定值
題目描述 從陣列 nums 中移除所有等於 val 的元素,返回移除後的新長度。 要求: 元素順序可改變 超出新長度的元素無需處理 原地操作,O(1) 額外空
LeetCode 搜尋區間:二分查找雙邊界定位目標範圍
題目描述 給定排序整數陣列 nums,找出目標值 target 的起始和結束位置。要求時間複雜度 O(log n)。若不存在返回 [-1, -1]。 範例: n
LeetCode 首個壞版本:二分查找與整數溢出陷阱
題目描述 你是產品經理,需找出第一個導致後續所有版本失敗的「壞版本」。給定 n 個版本 [1, 2, ..., n],提供 API bool isBadVers
LeetCode 搜尋插入位置:二分查找實現 lower_bound 功能
題目描述 給定一個已排序整數陣列 nums 和目標值 target,若目標值存在則返回其索引;否則返回其應插入的位置索引以保持陣列有序。假設陣列無重複元素。
LeetCode 237 鏈表刪除節點:O(1) 時間刪除給定節點技巧
題目翻譯 給定單向鏈表中某個節點的指標(非尾節點),編寫函數刪除該節點。 範例: 鏈表 1 → 2 → 3 → 4,給定值為 3 的節點,刪除後變為 1 → 2
LeetCode 283 移動零:原地演算法與雙指針技巧詳解
題目翻譯 給定一個整數陣列 nums,編寫一個函數將所有的 0 移動到陣列末尾,同時保持非零元素的相對順序不變。 範例: 輸入 nums = [0, 1, 0,
C++ 智能指標 unique_ptr 實戰系列:深入解析 get_deleter 與自定義刪除器
前言 在上一篇文章中,我們幾乎涵蓋了 std::unique_ptr 的所有成員函數,但仍有一個極具實用價值的函數未被詳細探討——get_deleter。這個函
LeetCode Partition List:鏈表分區保持相對順序
LeetCode 筆記:Partition List(鏈表分區) 題目描述 給定鏈表和值 x,將小於 x 的節點移到前面,大於等於 x 的移到後面,保持兩部分內
LeetCode Wildcard Matching:通配符匹配迭代雙指針解法
LeetCode 筆記:Wildcard Matching(通配符匹配) 題目描述 實現支持 ? 和 * 的通配符匹配。? 匹配任意單字符,* 匹配任意序列(含
HDU 3450 Counting Sequences:DP + 樹狀數組 + 離散化計數子序列
HDU 3450 Counting Sequences 解題報告 題意 統計相鄰元素差值不超過 d 的子序列個數(模 9901)。 解題思路 DP:d[i] 表
HDU 5493 Queue:二分 + 樹狀數組還原隊列字典序最小
HDU 5493 Queue 解題詳解 題意 n 人排隊,身高唯一。給出每人身高及他前面或後面比他高的人數(不知前後)。還原隊列,要求字典序最小。 解題思路 按
HDU 2795 Billboard:線段樹維護區間最大值查找最左位置
HDU 2795 Billboard 解題報告 題意 初始序列全為 w。每次查找最左邊 >= a 的位置,將該值減去 a,輸出位置;找不到輸出 -1。 解