原创 hihoCoder第一週(最長迴文子串)

求一個字符串的最長迴文子串最容易想到的第一個方法就是枚舉每個子串,然後判斷它是不是迴文串,枚舉子串時我們不需要創建新串,只需要比較字符串的第一個字符和最後一個字符是否相同,第二個字符和倒數第二個字符是否相同,以此類推。 如果一個

原创 Linux下配置彙編編譯器NASM和bochs模擬器

NASM下載:http://www.nasm.us/pub/nasm/releasebuilds/?C=M;O=D 解壓:tar zxvf nasm-2.12.02.tar.gz 進入剛解壓的目錄 然後執行命令:./configure

原创 HihoCoder第二週(字典樹)

題目 輸入的第一行爲一個正整數n,表示詞典的大小,其後n行,每一行一個單詞,單詞由不超過10個的小寫英文字母組成,可能存在相同的單詞,此時應將其視作不同的單詞。接下來的一行爲一個正整數m,表示詢問的次數,其後m行,每一行一個字符串

原创 二叉搜索樹轉化雙向鏈表

題目:輸入一棵二叉搜索樹,將該二叉搜索樹轉換成一個排序的雙向鏈表 要求排序可以想到中序遍歷,把根節點的左右子樹都轉換成排序好的雙向鏈表,再將根節點左子樹的最大值,右子樹的最小值與根節點相連。 class Solution { publi

原创 網絡中的連接設備

轉發器(集線器): 轉發器是一種僅工作在物理層的設備,轉發器在信號衰減前接收信號並再生髮送出去。它所連接的是同樣局域網的兩個網段,並且沒有過濾功能。 網橋: 網橋工作在物理層和數據鏈路層。作爲物理層的設備,它具有轉發器的功能。作爲數據鏈路

原创 VIM使用大全(總結自實驗樓)

1.遊標移動 按鍵 說明 h 左 l 右(小寫L) j 下 k 上 w 移動到下一個單詞 b 移動到上一個單詞 2.插入模式 命令 說明 i 在當前光標處進行編輯 I 在行首插入 A 在行末插入 a 在光標後插入編輯 o 在當前行

原创 PhxRPC源碼分析(二)uthread_context

uthread 協程的概念在coroutine源碼分析中有介紹。phxrpc默認使用ucontext作實現,同時還有boost優化版本。 UThreadContext UThreadContext是定義了協程接口的基類,並且有一個

原创 Linux常用命令

查詢目錄中的內容 ls -a 顯示所有文件,包括隱藏文件 -l 顯示詳細信息  可寫爲ll -rw-r--r-- - 文件類型(-文件 d 目錄 i軟鏈接文件) rw-           r--           r-- u所有

原创 劍指offer-複雜鏈表的複製

輸入一個複雜鏈表(每個節點中有節點值,以及兩個指針,一個指向下一個節點,另一個特殊指針指向任意一個節點),返回結果爲複製後複雜鏈表的head。 方法1:先按next建立好初始鏈表,然後從頭結點開始遍歷原鏈表每個節點的random指針需要走

原创 找出數組中出現次數超過一半的數

如果有一個數出現的次數超過一半,那他出現的次數肯定比其他數字出現次數的和還要多,這時可以遍歷數組並保存兩個值,一個是出現的數字,一個是次數,當下一個數字和保存的數字相同時,次數加1,如果不同,次數減1,如果次數爲0,我們需要保存下一個數字

原创 已知二叉樹前序中序遍歷重建二叉樹

中序遍歷中根節點前的節點爲左子樹,根節點後的節點爲右子樹。 class Soultion{ public: struct TreeNode* reConstructBinaryTree(vector<int> pre,vector<i

原创 整數中1出現的次數(從1到n整數中1出現的次數)

class Solution { public: int NumberOf1Between1AndN_Solution(int n) { int ones = 0; for (long long

原创 二叉樹的深度

最大深度 class Solution { public: int TreeDepth(TreeNode* pRoot) { if(pRoot==NULL) return 0;

原创 彙編語言(二)

指令的尋址方式 彙編指令由操作碼字段和操作數字段構成。對於雙操作指令,第一個操作數稱爲目的操作數,表示操作後的結果;第二個操作數稱爲源操作數,表示來源操作數。兩者以逗號分隔。如: 所謂尋址方式,即指令中提供操作數或操作數地址

原创 彙編語言(一)

1 8086寄存器組 8086寄存器都是16位的寄存器,根據用途可分爲4種類型。分別是數據寄存器、地址寄存器、段寄存器和控制寄存器。如圖所示 數據寄存器中每個寄存器又可以分爲2個8位的寄存器。分別爲AH、AL,BH、BL,CH、