原创 【內存重疊】memcpy函數和memmove函數的實現

memcpy函數:從源內存地址的起始位置開始拷貝n個字節到目標內存地址 void *memcpy(void *dest,const void *src,size_t n) { char *tmp = (char *)dest; ch

原创 【網易】矩形重疊 、牛牛的揹包、小易的字典 — C++

矩形重疊: 題目描述: 平面內有n個矩形, 第i個矩形的左下角座標爲(x1[i], y1[i]), 右上角座標爲(x2[i], y2[i])。 如果兩個或者多個矩形有公共區域則認爲它們是相互重疊的(不考慮邊界和角落)。 請你計算出平

原创 【位運算】位運算判斷奇偶數、位運算求和、位運算求平均數、位運算求二進制1的個數

位運算判斷奇偶數:     2,4,6,8,10這樣的數轉化爲二進制是10,100,1000,10000,將其減1後做與運算爲0; x & (x-1) == 0 //偶數 x & (x-1) != 0 //奇數 位運算求平均數:

原创 【makefile】makefile實際用法/寫法

makefile:makefile通過編譯和鏈接來運行程序; 陳浩老師有一篇博客在makefile原理這塊寫的很清楚:https://blog.csdn.net/haoel/article/details/2886 編譯:源文件編譯成中間

原创 【C++】模板 全特化、偏特化

    在定義模板類型參數時,typename和class作用相同!  1. 函數模板       在編譯階段執行   a  定義點   模板頭部          b  調用點   模板函數 2. 模板函數 3. 模板的實例化  //

原创 【Linux】網絡編程流程(TCP+UDP)

TCP: 首先要了解通訊的兩端:數據提供者(服務器)   數據獲取者(客戶端)  C/S模型      服務器:(函數)  int listenfd socket();  //提供文件描述符 socket編程  bind();  //將I

原创 【LeetCode 236】C++實現遞歸、非遞歸求二叉樹的最近公共節點

/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode

原创 【LeetCode 160】相交鏈表[3種解法]

題目描述:編寫一個程序,找到兩個單鏈表相交的起始節點。  1.暴力求解:一個個進行對比,找到第一個相等的節點就是交點  ps:效率低 /** * Definition for singly-linked list. * struct

原创 【C++】實現單例模式 [懶漢模式、餓漢模式]

單例模式:保證一個類只被實例化一次!單例模式有懶漢和餓漢兩種模式; 懶漢模式:第一次用到類的時候再去實例化;適合在訪問量較小的時候使用;                 【時間換空間,懶漢模式本身是線程不安全的!】 餓漢模式:類定義的時候

原创 【LeetCode 135】分發糖果 — C++

老師想給孩子們分發糖果,有 N 個孩子站成了一條直線,老師會根據每個孩子的表現,預先給他們評分。 你需要按照以下要求,幫助老師給這些孩子分發糖果: 每個孩子至少分配到 1 個糖果。 相鄰的孩子中,評分高的孩子必須獲得更多的糖果。 那麼這

原创 【LeetCode 322、518】零錢兌換、零錢兌換 II — C++

 LeetCode 322 零錢兌換 給定不同面額的硬幣 coins 和一個總金額 amount。編寫一個函數來計算可以湊成總金額所需的最少的硬幣個數。如果沒有任何一種硬幣組合 能組成總金額,返回 -1。 示例 1: 輸入: coin

原创 讀書筆記:《Linux內核設計與實現》第三章 —— “進程管理”

目錄 3.1進程 3.2進程描述符及任務結構 3.3進程創建 3.4線程在Linux中的實現 3.5進程終結     在第三章中,主要考察了操作系統的核心概念——進程。以及Linux如何存放和表示進程(用task_struct和threa

原创 Dear my diary —— “ [還沒有想好標題] ”

   這種每天早起看書的日子充實又痛苦,所以我要記錄一些好玩的事情(๑•̀ㅂ•́)و✧  7.26    認識的同學都在寫csdn博客,有天大家都在一起,準備互粉,增加一下粉絲量,他們看到我的粉絲這麼多就很好奇,問我怎麼這麼多粉絲,我就瞎

原创 讀書筆記:《Linux內核設計與實現》第七章 —— “中斷和中斷處理”

   在第七章中,主要對中斷和中斷處理進行了介紹。操作系統的任務是對計算機硬件和軟件進行管理,內核是操作系統的核心,它負責管理系統進程、內存、設備驅動程序、文件和網絡系統,其中就需要做到對計算機的硬件設備進行有效管理。要進行管理就必須進行

原创 讀書筆記:《Linux內核設計與實現》第五章 —— “系統調用”

   目錄 5.1與內核通信 5.2API、POSIX和C庫 5.3系統調用 5.4系統調用處理程序 5.5實現系統調用  5.6系統調用上下文    在第五章中,講述了系統調用究竟是什麼?以及Linux內核如何實現系統調用,以及執行系統