Time of Update: 2018-12-07
很多時候,我們需要快速的壓縮大量的資料,在磁碟IO和cpu之間做一個權衡,以便使程式跑得更快。Snappy就是這樣一種快速的資料壓縮演算法。對於一個核的i7處理器(64位元模式),能達到250M/s以上的處理速度。Snappy通常在達到相當壓縮的情況下,要比同類的快速的壓縮演算法,如LZO,LZF,FastLZ和QuickLZ快。它對純文字的壓縮比大概是1.5~1.7x,對HTML網頁是2-4x,對圖片等位元據基本沒有壓縮,為1x。Snappy分別對64位和32位處理器進行了最佳化,不論32位處
Time of Update: 2018-12-07
題目:輸入一個整形數組,數組裡有正數也有負數。數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。求所有子數組的和的最大值。要求時間複雜度為O(n)。例如輸入的數組為1, -2, 3, 10, -4, 7, 2, -5,和最大的子數組為3, 10, -4, 7, 2,因此輸出為該子數組的和18。 請參考:http://www.cnblogs.com/youwang/archive/2010/07/16/1778929.html 問題擴充: 給定一個序列1,2,3,4,5,6,7,
Time of Update: 2018-12-07
CodeCode highlighting produced by Actipro CodeHighlighter
Time of Update: 2018-12-07
題目:輸入一個整數和一棵二元樹。從樹的根結點開始往下訪問一直到葉結點所經過的所有結點形成一條路徑。列印出和與輸入整數相等的所有路徑。例如輸入整數22和如下二元樹 10 / 5 12 / 4 7則列印出兩條路徑:10, 12和10, 5,
Time of Update: 2018-12-07
題目:輸入一個整數數組,判斷該數組是不是某二元尋找樹的後序遍曆的結果。如果是返回true,否則返回false。例如輸入5、7、6、9、11、10、8,由於這一整數序列是如下樹的後序遍曆結果: 8 / 6 10 / / 5 7 9
Time of Update: 2018-12-07
實現一個挺進階的字元匹配演算法:給一串很長字串,要求找到符合要求的字串,例如目的串:1231******3***2 ,12*****3 這些都要找出來其實就是類似一些和諧系統。。。。。
Time of Update: 2018-12-07
WhiteSmoke是一個英文寫作語法檢查,寫作風格檢查的工具,是寫英文文章和論文的好幫手。但是該軟體是一個收費的軟體,提供7天的試用期,之後就要收費了。該軟體是一個線上軟體,有很多破解者,最終都已失敗告終。 本人也是一個軟體破解愛好者,不過水平不怎麼的,一直也想破解到這個軟體,但是最後也失敗了。後來我觀察了這個軟體的登錄機碼,通過仔細分析,發現刪除某個登錄機碼就可以重新試用。在運行該軟體後會提示你輸入郵件地址,輸入support@whitesmoke.com就可以重新試用了。 為了方便大家,我
Time of Update: 2018-12-07
題目:定義棧的資料結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1)。 分析:這題的主要限制在時間複雜度為O(1),首先想到的肯定是以空間換時間。這裡我們給棧裡面的每個元素,若是最小元素,就讓他帶一個指向上一個最小元素的域,這樣就很容易就實現了。 以下是代碼View Code
Time of Update: 2018-12-07
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 void extended_gcd(int a,int b,int *x,int *y) 2 { 3 int t; 4 if(b==0) 5 { 6 *x = 1; 7 *y = 0; 8 return ;
Time of Update: 2018-12-07
新版的firefox,右鍵菜單第一個是在新視窗中打卡連結,這個很不方便,想把在新選項卡中開啟連結提前。 在網上查了一下,都推薦Menu
Time of Update: 2018-12-07
Time Limit: 1000MS Memory Limit: 65536KBTotal Submissions: 81 Accepted: 9 Description:Fermat's theorem states that for any prime number p and for any integer a > 1, a^p == a (mod p). That is, if we raise a to the pth power and divide by p, the
Time of Update: 2018-12-07
#####ubuntu10.04#####deb http://mirror.dlut.edu.cn/ubuntu/ lucid main restricteddeb-src http://mirror.dlut.edu.cn/ubuntu/ lucid main restricteddeb http://mirror.dlut.edu.cn/ubuntu/ lucid-updates main restricted deb-src
Time of Update: 2018-12-07
Win7沒有了快速存取,新增加了鎖定到工作列的功能。經過我的研究發現了,幾個與這個東西有關的幾個東西。 首先一個就是檔案夾“C:UsersYou WangAppDataRoamingMicrosoftInternet ExplorerQuick LaunchUserPinnedTaskBar”,其中“You
Time of Update: 2018-12-07
題目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。通常求1+2+…+n除了用公式n(n+1)/2之外,無外乎迴圈和遞迴兩種思路。由於已經明確限制for和while的使用,迴圈已經不能再用了。同樣,遞迴函式也需要用if語句或者條件判斷語句來判斷是繼續遞迴下去還是終止遞迴,但現在題目已經不允許使用這兩種語句了。利用類得建構函式 View Code #include <iostream>using
Time of Update: 2018-12-07
題目:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。鏈表的倒數第0個結點為鏈表的尾指標。 這題可以使用兩個指標,第一指標首先向後找k個節點,然後兩外一個指標同步開始向後,當第一個到最後時,第二個指標就指向了倒數第k個節點。 廢話少說,上碼:View Code
Time of Update: 2018-12-07
今天無意間看到ACE的部落格,發現apt-get有加速工具apt-fast,apt-fast的加速原理就是利用axel來取代wget。想當初我就想想辦法將apt-get的下載工具改成axel,但是由於自己水平有限,一直沒有實現。原來早有大牛已經實現。 下面講一下安裝的過程:1 sudo add-apt-repository ppa:tldm217/tahutek.net2 sudo apt-get update3 sudo apt-get install apt-fast4 # 這個 PPA 支
Time of Update: 2018-12-07
實驗室Algorithm Design and Engineering Group http://www.dis.uniroma1.it/~ae/山東大學資訊檢索實驗室 http://ir.sdu.edu.cn/index.htmITNLP LAB http://www.insun.hit.edu.cn/default_cn.aspDMWS http://datamining.sztaki.hu/?q=en/en-index 學者Juan Martinez Romo
Time of Update: 2018-12-07
題目:輸入一個已經按升序排序過的數組和一個數字,在數組中尋找兩個數,使得它們的和正好是輸入的那個數字。要求時間複雜度是O(n)。如果有多對數位和等於輸入的數字,輸出任意一對即可。例如輸入數組1、2、4、7、11、15和數字15。由於4+11=15,因此輸出4和11。仔細想想,你會發現對於排好序的數組來說,直接貪心就可以了。最初我們找到數組的第一個數字和最後一個數字。當兩個數位和大於輸入的數字時,把較大的數字往前移動;當兩個數位和小於數字時,把較小的數字往後移動;當相等時,打完收工。這樣掃描的順序
Time of Update: 2018-12-07
裝配線問題,問題詳見演算法導論(第二版)中文版地193頁(英文版323頁)。 C#實現如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 動態規劃之裝配線問題{ /// <summary> /// 動態規劃之轉配線問題,用遞迴實現,但記錄中間結果 /// </summary> class Program {
Time of Update: 2018-12-07
給定一個一個數,找出二進位表示有相同數量1的最大的和最小的數。 分析:首先考慮正數,我們將1儘可能放到高位(除符號位)。對於負數,就稍微複雜一點,因為在我們電腦上,負數是用補碼錶示的,對於補碼,1應該竟可能放到低位(除符號位)。知道這些,就很容寫出代碼來了,下面是參考代碼。 #include <iostream>using namespace std;// 1的個數int ones(unsigned int x){int n = 0;while (x){if ( x & 1