原创 github操作, 解決坑點的總結(持續更新...)

文章目錄本地新建一個倉庫要push到github上git pull拒絕合併無關歷史git pull: 當前分之沒有跟蹤信息想要統計github倉庫代碼每次git clone過慢每次提交都要輸用戶名和密碼git 的撤銷操作 本地新建一

原创 使用cmake編譯,組織C++項目

文章目錄前言例一例二例三 前言 這篇博客是我對cmake用法的一些經驗總結, 還很淺顯, 如果有錯誤或者更好的方案, 歡迎指正~ 使用方法統一爲在build目錄中執行: $: cmake .. $: make 我覺得養成外部編譯

原创 淺談 Linux 下的內存管理

文章目錄前言面臨的問題虛擬內存分段分頁頁表快表 TLB多級頁表缺頁錯誤進程的內存佈局內存分配機制(不做詳述)mm_struct 和 vm_area_structs 前言 因爲春招的緣故, 經歷了一次自我整體全面的知識上的查漏補缺,

原创 最長不重複子串 (哈希 + DP)

自己沒想出來, 代碼來自別人的博客, 但是找不到出處了… 代碼實現 int longestSubstring(string str) { //利用哈希的思想,key是每一個字符,value是其對應的下標 //

原创 計算機硬件組成(寄存器, 內存, 緩存的關係)

emmm 個人筆記篇… 本篇博客爲了我一直記不住這些知識點, 寫篇博客日後每次翻開看看 如果有問題, 歡迎指正! 距離 CPU 最近的是寄存器, 其次是緩存, 內存最遠, (更遠的就是外存了, 磁盤啥的) 緩存是存儲一部分內存中的

原创 處理使用 epoll ET 模式下文件描述符出現飢餓的情況

考慮如下情況: 使用epoll ET模式時, epoll_wait返回就緒文件描述符集合, 然後我們循環處理, 但這時如果有一個文件描述符上有大量輸入(不間斷的輸入流), 因爲我們ET模式需要一直讀到返回EAGIN / EWOULDB

原创 小心使用指針當做 unordered_set / unordered_map 的鍵

當我們試圖使用指針作爲哈希的鍵時, 要小心下面的情況: #include <set> #include <map> #include <vector> #include <memory> #include <utility> #inc

原创 Redis源碼學習之 網絡庫模塊 ae.c / ae_epoll.c

文章目錄前言必要數據結構封裝 epoll 的必要成員文件事件時間事件結構已就緒事件事件處理器的狀態 (就是最主要的 aeEventLoop初始化事件處理器狀態創建 listenfd 並加入 epoll執行主循環處理事件 aeProce

原创 leetcode: Generate Parentheses

轉自博客 給定n對括號, 編寫一個函數來生成所有格式良好的括號組合 例如, 給定n = 3, 解集爲: [ "((()))", "(()())", "(())()", "()(())", "()()()" ]

原创 [STL 學習]: STL的空間配置器

本篇博客大部分內容來自於於侯捷老師的STL源碼剖析和一些博客, 僅用作個人的學習記錄和日後複習, 如果有博主覺得侵權, 可以聯繫我刪除 文章目錄new / delete 和 ::operator new / ::operator d

原创 給定一個無序數列, 找出右邊第一個比他大的數

今天面騰訊, 這道題沒想出來 題目要求基本如題, 然後只有一個元素的時候 (最右末尾元素) 對應值爲空 當時面試官要求時間複雜度爲 O(n), 想了半天也沒想出來 提示了使用棧和棧頂指針做, 過了一會時間不夠了就問下面的題了, 現在

原创 堆排序學習總結

文章目錄基本思想時間複雜度代碼實現 基本思想 堆是一種完全二叉樹, 分爲大頂堆和小頂堆. 本篇博客我們默認要進行一個升序排序, 那麼我們要構建一個大頂堆 堆排序的算法思想就是先構建一個大頂堆之後, 堆頂元素就是該數列最大值, 然

原创 DP : 0-1揹包問題

文章目錄問題描述解題思路狀態轉移方程不將第 i 種物品放進揹包將第 i 種物品放進揹包優化空間複雜度代碼實現 問題描述 給定一組物品, 每種物品都有自己的重量和價格, 在限定的總重量內, 我們如何選擇, 才能使得物品的總價格最高 每

原创 DP : 最長公共子序列

文章目錄求解思路代碼實現 這篇博客是聽完郭煒老師的課之後的總結 求解思路 現在假設求兩個字符串s1, s2的最長公共子序列 s1長度爲len1, s2長度爲len2, 我們設MaxLen(i, j)表示: s1左邊 i 個字符形成

原创 最長遞增子序列

文章目錄問題描述時間複雜度爲O(n2)時間複雜度爲O(n logn) 問題描述 對於一個數字序列,請設計一個複雜度爲O(nlogn)的算法,返回該序列的最長上升子序列的長度, 這裏的子序列定義爲這樣一個序列U1,U2…,其中Ui