Time of Update: 2018-12-03
有一個單向迴圈鏈表,從頭開始報數,報到m或者m的倍數的元素出隊。根據出隊的先後順序再組成一個單向迴圈鏈表。函數的原型:void reorder(Node **head,int m);個人以為,這題目是約瑟夫環的變種。方法就是沿迴圈鏈表依次報數,報到編號能被m整除的,就把這個節點從原鏈表中刪除,連結到新的鏈表中去。迴圈終止的條件,就是只剩下最後一個節點,即:p->next == p#include
Time of Update: 2018-12-03
簡單的範例程式碼如下,從檔案中讀取內容進行去除停用詞和詞幹提取,結果儲存在result中。Version matchVersion = Version.LUCENE_43;BufferedReader stopwordsReader = new BufferedReader( new FileReader("a.txt"));Analyzer analyzer = new StandardAnalyzer(matchVersion,
Time of Update: 2018-12-03
今天關注webkit中dom樹是怎麼構建的,HTML是怎麼分析的。1、dom相關的代碼在webcore中dom目錄下,有很多類,比較重要的是Document.h、DocumentFragment.h、DocumentParser.hDocumentParser是一個基類感覺好像沒幹什麼事,只是傳入了一個開始parse的狀態,在DocumentFragment中有parseHTML,好像開始了真正的parse操作; 2、HTML的parse操作,從DocumentFragment中的parseH
Time of Update: 2018-12-03
因為閱讀chromium的需要,也熟悉了一下chromium使用的GYP構建系統,其實這個系統和我原來所在的一個公司的構建系統非常相似,因此學習起來也比較容易。首先看一下gyp的安裝,如果你使用ubuntu系統那麼安裝可以通過下面的命令完成:sudo apt-get install gyp下面我們就通過一個例子來看看gyp的使用,假設我們編寫三個檔案hello_world.cc, my_class.h, my_class.cc這三個檔案內容如下:hello_world.cc#include
Time of Update: 2018-12-03
轉自:http://ourpgh.blogspot.com/2008/09/webkitwebcore.html最近自從Google推出Chrome瀏覽器之後,瀏覽器受到人們更加廣泛的關注,網上時而會出現這樣那樣的評價,作為一個瀏覽器核心愛好者,希望能乘著大家都關注的東風,能對瀏覽器核心有更深入的理解,進而能更好的進行Web開發及利用。Chrome瀏覽器的代碼量其實是非常龐大的,要想對其有深入的理解,僅僅編譯編譯調試調試,是很難深入下去的。讓我們還是從其主要部分如多進程管理通訊、WebKit、
Time of Update: 2018-12-03
在javascript中,我們有時候要使用delete刪除對象。但是,對於delete的一些細節我們未必盡知。昨天,看到kangax分析delete的文章,獲益匪淺。本文將文章的精華部分翻譯出來,與各位分享。原理 代碼類型 執行內容 啟用物件/可變對象 屬性特性 內建對象和DontDelete 未聲明的賦值 Firebug 困惑 通過eval刪除變數 瀏覽器安全色性 Gecko DontDelete bug IE bugs 誤區 ‘delete’和宿主對象 ES5strict 模式 總結 1.
Time of Update: 2018-12-03
1、使用積累數組cumarr[1...n][1...n],使得求任意塊兒子矩陣和的複雜度為O(1),cumarr[i][j]為cumarr[1...i][1...j]子矩陣的和, 通過cumarr[i][j]=cumarr[i-1][j]+cumarr[i][j-1]-cumarr[i-1][j-1]計算積累數組,複雜度為O(N*N), 2、枚舉+dp 對矩陣的行枚舉,確定矩陣地區的上下界imin和imax,此時就可以進行類似一維數組最大和的方法,每個枚舉的矩陣地區負責度O(N)
Time of Update: 2018-12-03
備忘:樹的一些操作:非遞迴三種遍曆,層序遍曆,求深度,求寬度,求直徑,求滿足條件的路徑,2個節點的最低父節點,樹的鏡像等等圖的一些操作:佛洛依德演算法,地傑斯特拉演算法,普利姆演算法,判斷連通圖,求連通分量個數,求割點(最大流問題)圖的幾種遍曆:深度,寬度遍曆圖的二種標記法:鄰接矩陣,鄰接表排序演算法:重點堆排序,歸併排序,以及變種的快速排序尋找重點關注二分尋找,二分尋找的變種可以來高效搜尋一個序列中某個數出現的次數。資料採礦的基本演算法:SVM,Kmeans,KNN,樸素貝葉斯及其應用,線性迴
Time of Update: 2018-12-03
1.cd,load等命令使用變數時加上括弧cd命令後面的路徑如果有空格,需要用引號將路徑括起來,否則會切換失敗。2.從cell數組(元素全是字串)中尋找某個字串,並返回字串的下標 find(ismember(cellarray, "str1") == 1)3.判斷矩陣a,b是否相等isequal(a,b)4.判斷矩陣是否為對稱陣isequal(a,a')5.找出矩陣中每一行大於0的元素個數sum(a>0,2)其他條件可以類推
Time of Update: 2018-12-03
DocumentLoader收到html後通過DocumentWriter調用HTMLDocumentParser::appendBytes,然後通過DocumentWriter解碼後,調用HTMLDocumentParser::append添加到HTMLInputStream中,如果當前有js在執行,就調用HTMLPreloadScanner預先下載一些img和css資源,如果有被suspend,就等待HTMLParserScheduler來resume,調用HTMLTokenizer來擷取一
Time of Update: 2018-12-03
http://www.jjos.org/%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84/webkit-%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84/2010/04/29/136_webkit.htmlWebKit在渲染一張頁面之前,首先,需要從網路上傳入頁面資料,以及頁面中所使用到的圖片、指令碼、CSS等資源。然後,通過布局引擎將擷取的資源資訊布局。最後,渲染引擎將資料渲染到瀏覽器的視圖中。那麼,網頁資料資源在WebKit中是如何被載入的,以
Time of Update: 2018-12-03
編程珠璣中給出了n*logn的解法,很有參考價值。O(n)的掃描方法,用到了前面分析的若干策略:1) 從某個位置開始,到i位置結束的sum的計算方法是max_ending_here + array[i]2)以往的最大值是max_sofar,要和到當前結束點的最大值進行比較取其大者3)如果max_ending_here +
Time of Update: 2018-12-03
#0 0xb7fdf416 in __kernel_vsyscall ()#1 0xac6147ae in __GI___poll (fds=0x32cf7b0, nfds=5, timeout=602) at ../sysdeps/unix/sysv/linux/poll.c:87#2 0xacb4d34b in g_poll (fds=0x32cf7b0, nfds=5, timeout=602) at
Time of Update: 2018-12-03
一般思想1、將問題簡化,從比較簡單的情況開始分析,比如1個元素情況,2個元素情況,3個元素情況,不斷增加,尋找規律,這樣有利於發現規律,從而解決問題,並且也有利於處理邊界情況。比如編程之美1.11、又如送貨站選址問題、1的個數問題等都可一通過逐漸的分析加以解決2、從比較簡單的例子,類比程式運行過程,比如二分尋找,可以使用4個元素的例子,類比尋找過程,總結判斷條件等。3、拿到一個問題,首先看看能否依照題意通過迴圈直接求解,能否分治求解,分治求解關鍵的是兩部和合并後如何求解,例如距離最近的點問題,歸
Time of Update: 2018-12-03
hash函數 hash函數常用的是mod 素數,或者使用乘法策略,取某些位,這些策略直接影響到hash table的resize,如果是mod素數的話,只能按素數來遞增,如果是取乘法方法,只能以2^p來遞增。 參考文獻[1][2]等給出了很多,常用的字串hash函數,但更有價值的還包括下面這兩個: murmur hash[3][4],其中[3]無法直接存取,不過本文的例子中有具體的實現,更多murmur hash[8]。 city hash見參考文獻[5]hash table的構建
Time of Update: 2018-12-03
產生0, 1的機率可以根據設定調整的程式:#include <stdio.h>#include <stdlib.h>int EqualProbability() { if (rand() % 2 == 0) { return 0; } else { return 1; }}int BiasProbability(int parameter) { int size = parameter + 1; if (rand() % size == 0) {
Time of Update: 2018-12-03
對於有序數組,取中間節點作為根節點,將數組分成兩部分,對數組的兩部分遞迴構建左右子樹#include <stdio.h>#include <stdlib.h>#include <queue>template<typename T>class TreeNode { public: TreeNode() : left_(NULL), right_(NULL) {} T value_; TreeNode* left_; TreeNode*
Time of Update: 2018-12-03
載自: http://ourpgh.blogspot.com/2008/10/webkitport.htmlWebKit作為一個瀏覽器引擎,其相對於Gecko而言一個較大的特點就是便於移植,嵌入到其他程式中,目前大家已瞭解使用WebKit引擎的應用程式套件括Safari、iPhone、Chrome、Android、Nokia S60 Browser及KDE
Time of Update: 2018-12-03
http://www.jjos.org/%E4%BA%92%E8%81%94%E7%BD%91/%E6%B5%8F%E8%A7%88%E5%99%A8/2010/05/10/308_webkit-webkit-major-objects.htmlWebCore在載入並且顯示一張頁面時,會建立許多的對象與頁面中的各個元素相互對應。這些對象之間的關係,以及由誰來建立並且管理的呢?對於不同的MIME類型的頁面(比如HTML,XHTML,XML)又是如何區分的呢?Javascript指令碼中是如何訪問這
Time of Update: 2018-12-03
打算把github上的一個分支取到本地,直接輸入命令:git checkout origin/A結果出錯:error: pathspec 'origin/feature_renrendai_tongji' did not match any file(s) known to