原创 [九度1512 劍指offer7] 用兩個棧實現隊列

題目描述: 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。 隊列中的元素爲int類型。 輸入: 每個輸入文件包含一個測試樣例。 對於每個測試樣例,第一行輸入一個n(1<=n<=100000),代表隊列操作的個數。 接

原创 [Linux內存管理-分頁機制]—把一個虛擬地址轉換爲物理地址

    由於內核在不同的CPU上運行,甚至包括目前的64位機器。Linux內核提供了4級頁表的管理機制,它可以兼容各種架構的CPU。     一個虛擬地址會被分爲5個部分:頁全局目錄PGD(Page Global Directory),頁

原创 [LeetCode]-Triangle 求三角形中從頂到底最短距離

Triangle iven a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent numbe

原创 Linux進程管理中的hash

            Linux內核必須能夠根據進程的PID找出對應的PCB。順序掃描進程鏈表並檢查PCB的PID域是可行但效率相當低的。爲了加速查找,引入了哈希表,於是建立了一個pid_hash的結構。 1、pid_hash的聲明(k

原创 Linux 2.6 中導出sys_call_table表修改系統調用函數

         Linux中實現系統調用時是利用了i386體系結構中的軟中斷,通過產生0x80中斷,使程序由用戶態進入內核態執行系統調用函數。當系統調用發生時,產生0x80中斷,CPU被切換到內核態執行中斷向量表IDT對應的0x80中斷

原创 Linux中實現線程池

爲了實現高併發服務器,試驗了epoll+線程池的方式進行併發處理,效果並不理想。併發量主要受到線程池數目的約束,但是將線程池的實現記錄如下:        參考網上相關文章,實現了線程池,方便以後使用。 /*threadpool.h*/

原创 mmap() 實現文件複製

mmap()在進程的的用戶空間創建一個新的虛存取,可以用於磁盤文件和內存空間相互映射。 把文件映射到進程的用戶空間以後,就額可以像訪問內存一樣,訪問文件。對於大文件的複製有明顯速度上的優勢。當然映射的內存區域越大,效率越高。 munmap

原创 [九度—劍指offer]—二維數組查找

本題來自《劍指offer》面試題3 題目描述: 在一個二維數組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函數,輸入這樣的一個二維數組和一個整數,判斷數組中是否含有該整數。 輸入: 輸入可能包含多

原创 [LeetCode]-Spiral Matrix I&II 螺旋矩陣

Spiral Matrix   Given a matrix of m x n elements (m rows, n columns), return all elements of the matrix in spiral o

原创 [LeetCode]-Palindrome Number 判斷整數迴文

Palindrome Number   Determine whether an integer is a palindrome. Do this without extra space. click to show spoil

原创 [LeetCode]-Edit Distance 兩個字符串之間最小編輯距離

Edit Distance     Given two words word1 and word2, find the minimum number of steps required to convert word1 to w

原创 [LeetCode] - Min Stack O(1)最小棧

Min Stack   Design a stack that supports push, pop, top, and retrieving the minimum element in constant time. push(x

原创 [九度 1510 劍指offer]—替換空格 數組插入逆向移動

題目1510:替換空格 題目:http://ac.jobdu.com/problem.php?pid=1510 題目描述: 請實現一個函數,將一個字符串中的空格替換成“%20”。例如,當字符串爲We Are Happy.則經過替換之後

原创 [LeetCode]-Pascal's Triangle I&II 楊輝三角問題

Pascal's Triangle   Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5