原创 劍指Offer:刪除鏈表中重複的結點

1. 刪除鏈表中相鄰的重複的點(若重複,則保留一個) C++代碼: void DeleteDuplication(ListNode* &pHead) {// 刪除鏈表中相鄰的重複結點(保留一個) if(NULL == pHead

原创 層序遍歷二叉樹VS之字形遍歷二叉樹

1. 層序遍歷二叉樹  C++ 代碼 vector<vector<int> > levelTraversal(TreeNode* pRoot) { // 層序遍歷二叉樹 vector<vector<int> > result;

原创 鏈表學習筆記

單向鏈表 struct ListNode {// 單向鏈表 int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) {} }; 從尾

原创 漢諾塔-遞歸 VS 非遞歸

問題描述:   有一個梵塔,塔內有三個座A、B、C,A 座上有諾幹個盤子,盤子大小不等,大的在下,小的在上(如圖)。把這些個盤子從 A 座移到 C 座,中間可以借用B座但每次只能允許移動一個盤子,並且在移動過程中,3 個座上的盤子始終保持

原创 《Java虛擬機》必知必會的 14 個問題總結(內存模型+GC)

一、Java 概述 1、Java 相較於 PHP、C#、Ruby 等一樣很優秀的編程語言的優勢是什麼? (1)體系結構中立,跨平臺性能優越。Java 程序依賴於 JVM 運行,javac 編譯器編譯Java程序爲平臺通用的字節碼文件

原创 數據結構學習筆記:B樹、B+樹、紅黑樹、AVL樹

B樹 二叉樹的深度較大,在查找時會造成I/O讀寫頻繁,查詢效率低下,所以引入了多叉樹的結構,也就是B樹。關於B樹的由來,這裏闡述了B-tree名字來源以及相關的開源地址。 階爲M的B樹具有以下性質: 1、根節點在不爲葉子節點

原创 C/C++學習筆記:智能指針詳解

C++ 智能指針詳解   一、簡介 由於 C++ 語言沒有自動內存回收機制,程序員每次 new 出來的內存都要手動 delete。程序員忘記 delete,流程太複雜,最終導致沒有 delete,異常導致程序過早退出,沒有執行 delet

原创 最長公共子序列VS最長連續公共子序列

int findLCS(string A, int n, string B, int m) {// 最長公共子序列 string strA = "#" + A; string strB = "#" + B; int

原创 單播、多播(組播)和廣播的區別

單播、多播和廣播單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網絡節點之間通訊方式的術語。那麼這些術語究竟是什麼意思?區別何在?1.單播:網絡節點之間的通信就好像是人們之間的

原创 淺談HTTP中Get與Post的區別

 Http 定義了與服務器交互的不同方法,最基本的方法有 4 種,分別是 GET,POST,PUT,DELETE。URL 全稱是資源描述符,我們可以這樣認爲:一個 URL 地址,它用於描述一個網絡上的資源,而 HTTP 中的 GET,P

原创 數據結構【樹】 學習筆記隨筆

二叉樹的第 i 層上最多有 2i-1 個結點。 深度爲 k 的二叉樹最多有 2k-1 個結點。 對於一顆二叉樹,葉子結點(度爲0)n0 個,度爲 2 的結點數爲 n2,則 n0 = n2 + 1。 滿二叉樹:深度爲 k 且有 2k-

原创 C/C++ 學習筆記:istringstream、ostringstream、stringstream 類介紹 和 stringstream類 clear函數的真正用途

0、C++的輸入輸出分爲三種: (1)基於控制檯的I/O      (2)基於文件的I/O          (3)基於字符串的I/O            1、頭文件 [cpp] view plaincopyprint

原创 C/C++ 學習筆記:結構體中最後一個成員爲[0]或[1]長度數組(柔性數組成員)的用法

結構體中最後一個成員爲[0]長度數組的用法:這是個廣泛使用的常見技巧,常用來構成緩衝區。比起指針,用空數組有這樣的優勢:(1)、不需要初始化,數組名直接就是所在的偏移;(2)、不佔任何空間,指針需要佔用int長度空間,空數組不佔任何空間。

原创 C++ 學習筆記:C++11 新特性學習

C++11是曾經被叫做C++0x,是對目前 C++ 語言的擴展和修正,C++11 不僅包含核心語言的新機能,而且擴展了 C++ 的標準程序庫(STL),併入了大部分的 C++ Technical Report 1(TR1)程序庫(數學

原创 內存溢出、內存泄露、內存越界、緩衝區溢出、棧溢出

內存溢出就是你要求分配的內存超出了系統能給你的,系統不能滿足 需求,於是產生溢出。 ================================================================ 內存泄漏是指你向系統申