待完成
資料:http://s.sousb.com/2011/04/15/%E7%BC%96%E7%A8%8B%E4%B9%8B%E7%BE%8E-%E6%9C%80%E7%9F%AD%E6%91%98%E8%A6%81/
資料:alibaba面試題
原題連接:http://programming2013.cstnet.cn/qualification/problem/2 題目描述: 時間限制: 1000ms 內存限制: 256MB 描述 在 N 條水平線與 M 條豎直線構
這一節給出了關於階乘的兩個問題,當然,並不是求階乘的值,而是求階乘的值的一些特性。 問題1:給定一個整數N,那麼N的階乘N! 末尾有多少個0? 如果將N! 的結果求出來,然後再計算末尾0的個數,那就要考慮是否會溢出,計算時間也要考慮。 這
問題是將一個小數表示成一個分數。當然,只有有限小數和無限循環小數才能轉換爲分數。 對於無限循環小數,給定的格式是將循環節用括號括起來,比如:0.3333(3333)。 書中先只考慮了0到1的純小數,然後分有限小數和無限循環小數討論,書上講
這節給的題目是從一串數字中尋找最大的K個數,而且考慮數據量比較大的情況。 解法一首先考慮了快速排序和堆排序,但是,它們對所有的數據都進行了排序,然後考慮使用部分排序算法,如選擇排序和交換排序,它們能夠從一串數字中選擇前K個,但是,效率依舊
本節給出的題目是: 給定一個十進制整數N,寫下從1開始,到N的所有整數,然後數一下其中出現的所有“1”的個數。 例如: N = 2,寫下1, 2。出現1個“1”。 N = 12,寫下1, 2, 3,4,5,6,7,8,9,10,11,12
題目來自《編程之美》一排石頭的遊戲 N塊石頭排成一列,每塊石頭都有自己的固定位置,也就是相當於有自己的編號一樣。兩個玩家依次取石頭,每個玩家每次可以取其中任意一塊石頭,或者相鄰的兩塊,最後將所有石頭取走的玩家贏。 這個遊戲有必勝策略嗎?
《編程之美》是基於windows系統的,而我使用的是ubuntu,所以在完成這道題的時候使用的是linux系統 1. top–>查詢當前cpu運行狀態 2. cat /proc/cpuinfo –>主機的cpu信息 /* *
這是從編程之美上看到的一道題,簡述題目內容如下: 給定正整數N,計算出從1到N的所有數字的十進制表示中出現1的次數,並找出能夠滿足f(N)==N的最大的N值。比如f(12) = 5, 因爲存在的數字有:1,10,11,12,總共五
題目:如果我們把二叉樹看成一個圖,父子節點之間的連線看成是雙向的,我們姑且定義”距離”爲兩節點之間邊的個數。寫一個程序,求一棵二叉樹中相距最遠的兩個節點之間的距離. 例如: 10 / \ 5 12 / \ 4 7
題目:輸入一棵二元樹的根結點,求該樹的深度。 從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度爲樹的深度。 例如:輸入二元樹: 8 / / 6 10 // // 5 7 9
魯棒是英文Robust的音譯。 健壯性是指軟件對於規範要求以外的輸入情況的處理能力。 所謂健壯的系統是指對於規範要求以外的輸入能夠判斷出這個輸入不符合規範要求,並能有合理的處理方式。 另外健壯性有時也和容錯性,可移植性,正確性有交叉的地
現在要把這幾種常見的算法給理清弄明白了,要不然只能做個低級程序員了。 動態規劃DP是求解決策過程的最優化的數學方式。動態規劃一般分爲線性動規,區域動規,樹形動規,揹包動規。 動態規劃是一種方法,但不是一種算法,一般用於多決策中的最優化問
查找數組中最大值和最小值, 方法一:分治法,一分爲二,分別查找子數組中最大值和最小值,合併時取兩個子數組的較大者和較小者。f(n) = 2f(n-1)+2;f(n)=1.5n-2; 方法二:將數組中元素每兩個一組,先比較每組中兩個元素,
P161 分治法求解,複雜度爲f(N) = 1.5N-1; 代碼如下:比較簡單 #include <iostream> using namespace std; void FindMaxAndMin(int num[],int l
1.11 要求是N塊石頭排成一排,位置固定,A和B每次取任意一塊或者相鄰兩塊,最後取光者獲勝;使用對稱策略,先取者B先取中間的一個(奇數個)或者兩個(偶數個),然後取跟A對稱的位置相同的個數的石頭即可。先取者獲勝; 擴展問題1:條件不變