原创 《編程之美》學習筆記——2.21只考加法的面試題

一、問題 我們知道: 1 + 2 = 3; 4 + 5 = 9; 2 + 3 + 4 = 9; 等式兩邊都是兩個以上的連續的自然數相加,那麼是不是所有的整數都可以寫成這樣的形式呢?稍微考慮一下,我們發現,4、8等數並不能寫成這樣的形式。

原创 《編程之美》學習筆記——2.5尋找最大的K個數

一、問題   有很多無序的數,假定它們各不相等,從中找出最大的K個數。 問題分析:   輸入:N個數;K。   輸出:N個數中最大的K個數,這K個數並不需要是有序的,只需爲數組中最大的K個數即可。   約束:N個數各不相等。 二、解法  

原创 OVa Online Judge 學習筆記- AOAPC I Volume 1. Elementary Problem Solving String

一、題目 二、做題筆記 1.10010 - Where's Waldorf? 技巧:採用二維數組存儲及遍歷字符,使用ctype對字符進行大小寫轉換,注意數組邊界即可解決問題。 答題記錄:AC 2.10361 - Automatic Poe

原创 OVa Online Judge 學習筆記

一、總學習原則:   1.使用有道詞典記錄單詞,並提高英語閱讀能力,增加詞彙量。   2.《算法競賽入門經典》指導下,先按照學習內容做題,再自由選題。   3.做好做題的筆記,記錄技巧,錯誤原因,及新知識點總結。   4.實現優先使用C語

原创 《編程之美》學習筆記——2.12快速尋找滿足條件的兩個數

一、問題   能否快速找出一個數組中的兩個數字,讓這兩個數字之和等於一個給定的數字,爲了簡化起見,我們假設這個數組中肯定存在至少一組符合要求的解。  問題分析:   輸入:一個長度爲N的數組和一個給定的數X。   輸出:數組中的兩個數字A

原创 《編程之美》學習筆記——2.19區間重合判斷

一、問題   給定一個源區間[x,y](y>=x)和N個無序的目標區間[x1,y1],[x2,y2],...,[xn,yn],判斷源區間[x,y]是不是在目標區間內。 例:   給定源區間[1 6]和一組無須的目標區間[2 3][1 2]

原创 數據結構專題——樹

一、樹(Tree) 定義(參考維基百科: http://en.wikipedia.org/wiki/Tree_%28data_structure%29): A tree is a (possibly non-linear) data s

原创 OVa Online Judge 學習筆記- AOAPC I Volume 1. Sorting/Searching

一、題目 二、做題筆記 1.10420 - List of Conquests 知識點:字符串排序,及相似字符串統計。 題目和10815相當類似,稍微修改下輸出和讀取格式即可。(C版本,使用qsort進行排序,自己實現用於比較字符串的c

原创 《算法導論》學習筆記——揹包問題

一、揹包問題(knapsack problem) (參考維基百科: http://en.wikipedia.org/wiki/Knapsack_problem) 1. 0-1 揹包問題(0-1 knapsack problem the

原创 HDOJ筆記

ID 1000:   學會使用scanf,注意scanf將忽略所有空白字符(空格、回車符、製表符)。 ID 1001:   防止運算過程中,數據溢出,該問題描述中註明了結果在32位有符號整數範圍內,自己寫算法時會發現中間過程會存在數據溢出

原创 《編程之美》學習筆記——2.13子數組的最大乘積

一、問題   給定一個長度爲N的整數數組,只允許使用乘法,不能用除法,計算任意(N-1)個數的組合乘積中最大的一組,並寫出算法的時間複雜度。 分析: 輸入:長度爲N的整數數組array。 輸出:(N-1)個數的組合最大乘積multiple

原创 《編程之美》學習筆記——2.6精確表達浮點數

一、問題   在計算機中,使用float或者double來存儲小數是不能得到精確值的。如果你希望得到精確計算結果,最好是用分數形式來表示小數。有限小數或者無限循環小數都可以轉化爲分數。比如:     0.9 = 9/10     0.33

原创 OVa Online Judge 學習筆記- AOAPC I Volume 1. Elementary Problem Solving Big Number

一、題目 二、做題筆記 1.424 - Integer Inquiry 技巧:構造高精度類。類中數組長度可以根據題目條件修改以節約空間或防止溢出。題目重點是求和。 答題記錄:WA 原因:字符串含有前導零影響運算,實現clean方法去除前

原创 《編程之美》學習筆記——2.11尋找最近點對

一、問題 給定平面上N個點的座標,找出距離最近的兩個點。 分析: 輸入:N個點,即N組座標(N >= 2),每個座標可以用數據結構Point結構體來表示,存儲x和y座標。 輸出:兩個點,即2組座標。 約束:輸出的兩個點在輸入所有的點中距

原创 查找專題——二分搜索及其拓展

一、二分查找(折半搜索)(binary search / half-interval search) 思想:算法採用分治思想(divide and conquer algorithm),二分查找從表中間開始查找目標元素。如果找到一致元素,