Time of Update: 2018-12-03
題目:在數組中,數字減去它右邊的數字得到一個數對之差。求所有數對之差的最大值。例如在數組{2, 4, 1, 16, 7, 5, 11, 9}中,數對之差的最大值是11,是16減去5的結果。其實只要從後面往前面遍曆,記住當前遇到的最小值min,對於當前元素a[i],計算a[i]-min和當前的最大差maxdiff比較,如果更大就更新maxdiff,否則不更新。另外還要看是否更新min#include<iostream>using namespace std;int main(){
Time of Update: 2018-12-03
一個整數數列,元素取值可能是1~N(N是一個較大的正整數)中的任意一個數,相同數值不會重複出現。設計一個演算法,找出數列中合格數對的個數,滿足數對中兩數的和等於N+1。複雜度最好是O(n),如果是O(n2)則不得分方法一:排序後,定義兩個指標begin,end分別指向數組的第一個和最後一個元素。然後按以下規則移動指標:1. 如果*begin + *end = N+1,那麼找到一個解,同時begin++,end--2. 如果*begin + *end >
Time of Update: 2018-12-03
轉自:WebKit中的設計模式(一):
Time of Update: 2018-12-03
一棵排序二叉樹,令 f=(最大值+最小值)/2,設計一個演算法,找出距離f值最近、大於f值的結點。複雜度如果是O(n2)則不得分。#include "stdafx.h"#include<iostream>#include<queue>using namespace std;typedef struct node{ int data; struct node *left; struct node
Time of Update: 2018-12-03
類似於快速排序,首先選擇一個劃分元,如果這個劃分元的序號index剛好等於k,那麼這個劃分元以及左邊的數,剛好組成了top-k small data;如果index>k, 那top-k small data在index的左邊,那麼就繼續遞迴從index-1和數中選取top-k.如果index < k,那麼說明還要從index的右邊,選取top-(k-index) small data.代碼如下:public class TopK_Quick {public static int
Time of Update: 2018-12-03
轉自:WebKit如何載入web頁面原文連結:http://webkit.org/blog/1188/how-webkit-loads-a-web-page/在WebKit能夠渲染web頁面之前,它必須從網路載入頁面和子資源。從web載入資源涉及到許多層,本文將集中於WebCore,即WebKit的主要渲染組件,如何參與載入過程。WebKit包含兩條載入管道,一個用於載入文檔到架構(frame),另一個用於載入子資源(片和指令碼)。總結了兩條管道涉及的主要對象:載入架構(Frame)FrameL
Time of Update: 2018-12-03
問題描述:給定一個整數序列(可能有正數,0和負數),求它的一個連續最大子序列乘積,如果乘積為負數,輸出-1分析:假設數組為a[],直接利用動歸來求解,考慮到可能存在負數的情況,我們用Max[i]來表示以a[i]結尾的最大連續子序列的乘積值,用Min[i]表示以a[i]結尾的最小的連續子序列的乘積值,那麼狀態轉移方程為: Max[i]=max{a[i], Max[i-1]*a[i], Min[i-1]*a[i]}; Min[i]=min{a[i],
Time of Update: 2018-12-03
最近在64位win7中安裝了acrobat 8.12之後,每當開啟office軟體,就會提示安裝acrobat, 並且最後出現“找不到....../AMD64/ADOBEPDF.DLL檔案的錯誤”其實在acrobat的安裝目錄Adobe\Acrobat 8.0\Acrobat下,有一個AdobePDFL.dll檔案,可以把這個檔案拷貝到AMD64檔案夾下,重新命名為:ADOBEPDF.DLL。再次開啟office軟體,提示安裝就會成功,一勞永逸。
Time of Update: 2018-12-03
刪除字串開始及末尾的空白符,並且把數組中間的多個空格(如果有)符轉化為1個。寫的不是很簡潔,有好幾處需要特別注意的地方方法:2個指標,space指向第一個空格,letter指向space之後的第一個字母,然後把letter指向的字母複製到space指向的空格。這裡要注意幾個地方:1. 因為2個單詞之間要空一個空格,所以複製之前要space++,不然一個空格都沒有了2. 如上面所說,如果這個字串是空格打頭,那麼只要說最後的字串會多一個空格打頭,所以我在前面加了個flag判斷字串是不是空格打頭3.
Time of Update: 2018-12-03
這個題目有點模稜兩可,只說轉化成二叉樹。也沒有說平衡二叉樹,二叉排序樹。如果只是隨便什麼二叉樹都可以,把就用數組作為輸出,隨便是前序,中序,還是後續構建二叉樹都可以,網上二叉樹建立的代碼一大堆。下面代碼是簡曆一棵二叉排序樹。首先用數組的中間元素作為根建立二叉樹,然後遞迴簡曆左子樹,右子樹。#include<iostream>#include<queue>#include<windows.h>using namespace std;typedef struct
Time of Update: 2018-12-03
對一個帶權有向圖G=(V,E),給定一個源頂點S,找出S到圖中其他頂點v的最短路徑即單源最短路徑問題。該問題還有很多變體,像單終點最短路徑、單對頂點最短路徑、每對頂點間的最短路徑等等。最短路徑問題是具有最優子結構的:一對頂點間的最短路徑包含了該路徑上的頂點間的最短路徑。直觀上理解,如果該路徑上的兩個頂點間的路徑pij不是最短路徑,那麼用這兩個頂點間的最短路徑代替pij,那麼就會出現一條更短的路徑,與前面所說的最短路徑矛盾。(具體證明參見演算法導論P358)。需要說明的是負權值邊和鬆弛技術。Dij
Time of Update: 2018-12-03
只解釋一下遞推公式m[i][j] = max(m[i-1][j],m[i-1][j-w[i]]+v[i])m[i][j]表示,前i個物體裝進最大容量為j的包裡能獲得的最大價值,如果這個解不包括 i 物體,那麼就等於m[i-1][j],即前i-1個物體放入容量為j的包裡鎖獲得的最大價值;如果包括 i 物體,那麼就等於m[i-1][ j-w[i] ] +v[i], 要能把物體i放進去, 必須在放i之前,包至少要有w[i]的容量剩餘,即包當前的最大價值等於m[i-1][j -
Time of Update: 2018-12-03
題目:輸入一個矩陣,按照從外向裡以順時針的順序依次列印出每一個數字。例如:如果輸入如下矩陣:1 2 3 45 6 7 89 10 11 1213 14 15 16則依次列印出數字1, 2, 3, 4, 8, 12, 1
Time of Update: 2018-12-03
在WebCore::Frame的資料結構中包含資料成員KJSProxy* m_jscript;而在Chrome的代碼中調整為JSBridge* m_jscript;而針對不同實現JavaScriptCore、V8,分別有:class KJSBridge : public JSBridge {public:KJSBridge(Frame* frame) : m_proxy(new KJSProxy(frame)) { }virtual ~KJSBridge() { delete m_proxy;
Time of Update: 2018-12-03
與unimodal 檢索不同,在cross-modal 檢索中,檢索結果的模態和查詢的模態是不同的。比如,使用者使用映像檢索文本,視頻和音頻。cross-modal檢索的關鍵在於對不同模態的關係進行建模,痛點就是bridging the semantic gap。 然而,當要檢索的文檔包含多模態的時候,一般的cross-modal方法就無法直接應用到multi-modal retrieval。multi-modal
Time of Update: 2018-12-03
將圖記為G(V,E)。圖的表示一般有兩種方法:鄰接矩陣和鄰接表。鄰接矩陣是一個為|V|*|V|的二維矩陣,記為array,array[i][j]表示節點i和節點j之間是否存在邊,對於帶權圖(又稱為網),array[i][j]還可以表示節點i和節點j之間邊的權。因為鄰接矩陣大小和圖中的邊數|E|無關,所以鄰接矩陣更適合於稠密圖(|E|接近|V|²)。鄰接矩陣同樣適合程式需要經常判斷兩個頂點之間是否存在邊的情形。而圖通常採用鄰接表表示,因為對鄰接表稍作修改就可以用於各種圖的變體,因而有很好的適應性
Time of Update: 2018-12-03
題目:輸入一個整數數組,調整數組中數位順序,使得所有奇數位於數組的前半部分,所有偶數位於數組的後半部分。要求時間複雜度為O(n)。方法:設2個頭尾指標begin和end,
Time of Update: 2018-12-03
來源:http://zhedahht.blog.163.com/blog/static/2541117420114172812217/ 題目:輸入一個字串,輸出該字串中字元的所有組合。舉個例子,如果輸入abc,它的組合有a、b、c、ab、ac、bc、abc。分析:在本系列部落格的第28題《字串的排列》中,我們詳細討論了如何用遞迴的思路求字串的排列。同樣,本題也可以用遞迴的思路來求字串的組合。假設我們想在長度為n的字串中求m個字元的組合。我們先從頭掃描字串的第一個字元。針對第一個字元,我們有兩種選
Time of Update: 2018-12-03
轉自: 淺談WebKi談WebKit之WWebKit之WebCore篇 1、從原始碼目錄結構來看WebCore目錄主要包括如下目錄:bindings 包含將Dom Binding給JavascriptCore方面的代碼,同時包含依據idl介面描述檔案,自動產生對應於JavascriptCore的Binding實現的指令碼等內容;bridge 主要包含NPPlugin方面的介面訪問等內容;css 主要包括與css方面相關的內容如解析、不同css規則的定義與實現、css
Time of Update: 2018-12-03
google上可以搜到很多實現,貌似用的比較多的是下面這幾個1.http://www.robots.ox.ac.uk/~vgg/software/2.http://lear.inrialpes.fr/~verbeek/software.php3.http://people.kyb.tuebingen.mpg.de/pgehler/code/index.html4.http://shenzi.cs.uct.ac.za/~honsproj/cgi-bin/view/2007/colledge_sau