原创 數量週期——藍橋杯2012年Java決賽

複雜現象背後的推動力,可能是極其簡單的原理。科學的目標之一就是發現紛繁複雜的自然現象背後的簡單法則。愛因斯坦的相對論是這方面的典範例證。 很早的時候,生物學家觀察某區域某種昆蟲的數量(稱爲蟲口數)之逐年變化規律,就十分迷惑:有的時

原创 提取子串——藍橋杯2012年Java決賽

串“abcba”以字母“c”爲中心左右對稱;串“abba” 是另一種模式的左右對稱。這兩種情況我們都稱這個串是鏡像串。特別地,只含有1個字母的串,可以看成是第一種模式的鏡像串。 一個串可以含有許多鏡像子串。我們的目標是求一個串的

原创 源碼變換——藍橋杯2012年Java決賽

源文件變成了一團遭。這是因爲,文本中的許多回車和空格都被忽略了。而有些符號在html中有特殊的含義,引起了更復雜的局面。 爲了源文件能正常顯示,我們必須爲文本加上適當的標籤。對特殊的符號進行轉義處理。 常用的有: HTML 需要轉

原创 趣味算式——藍橋杯2012年Java預賽

匪警請撥110,即使手機欠費也可撥通! 爲了保障社會秩序,保護人民羣衆生命財產安全,警察叔叔需要與罪犯鬥智鬥勇,因而需要經常性地進行體力訓練和智力訓練! 某批警察叔叔正在進行智力訓練: 1 2 3 4 5 6 7 8 9 = 11

原创 公倍數——藍橋杯2011年Java決賽

爲什麼1小時有60分鐘,而不是100分鐘呢?這是歷史上的習慣導致。 但也並非純粹的偶然:60是個優秀的數字,它的因子比較多。 事實上,它是1至6的每個數字的倍數。即1,2,3,4,5,6都是可以除盡60。 我們希望尋找到能除盡

原创 古代賭局——藍橋杯2012年Java決賽

俗話說:十賭九輸。因爲大多數賭局的背後都藏有陰謀。不過也不盡然,有些賭局背後藏有的是:“陽謀”。 有一種賭局是這樣的:桌子上放六個匣子,編號是1至6。多位參與者(以下稱玩家)可以把任意數量的錢押在某個編號的匣子上。所有玩家都下注

原创 矩形運算——藍橋杯2012年Java預賽

在編寫圖形界面軟件的時候,經常會遇到處理兩個矩形的關係。 如圖【1.jpg】所示,矩形的交集指的是:兩個矩形重疊區的矩形,當然也可能不存在(參看【2.jpg】)。兩個矩形的並集指的是:能包含這兩個矩形的最小矩形,它一定是存在的。

原创 賬單查錯——藍橋杯2011年Java預賽

某財務部門結賬時發現總金額不對頭。很可能是從明細上漏掉了某1筆或幾筆。如果已知明細賬目清單,能通過編程找到漏掉的是哪1筆或幾筆嗎? 如果有多種可能,則輸出所有可能的情況。 我們規定:用戶輸入的第一行是:有錯的總金額。 接下來

原创 Majority Number II——算法練習

No.1-2 Majority Number II Given an array of integers, the majority number is the number that occurs more than 1

原创 繪製表格——藍橋杯2011年Java預賽

在中文Windows環境下,控制檯窗口中也可以用特殊符號拼出漂亮的表格來。 其實,它是由如下的符號拼接的: 左上 = ┌ 上 = ┬ 右上 = ┐ 左 = ├ 中心 =

原创 樹形顯示——藍橋杯2011年Java決賽

樹形結構應用十分廣泛。 下面這段代碼根據用戶添加的數據,在內存中構建一個邏輯上等價的樹形結構。 通過ShowTree() 可以把它顯示爲控制中的樣子。 其中: a.add(‘a’, ‘b’); a.add(‘b’, ‘

原创 斐波那契數列的遞歸與非遞歸算法實現及其時間複雜度

斐波那契數列 1、1、2、3、5、8、13、21、34…… int F(int n)//遞歸算法 { if(n<=1) return 1; return F(n

原创 Majority Number——算法練習

題目: No.1 Majority Number Given an array of integers, the majority number is the number that occurs more than half

原创 Minimum Subarray——算法練習

題目:Given an array of integers, find the subarray with smallest sum. Return the sum of the subarray. 翻譯:給定一個整型數組,找到

原创 從“估車價”看機器學習

提到機器學習,相信大家已經不再陌生,隨着人工智能的火熱,講解機器學習算法的文章也鋪天蓋地。這裏我們不再單獨討論某個算法的原理,而是看一看這些“神祕”的算法是如何有效地結合到實際場景中的。 先來看這樣一個小故事:小明在北京打拼多年,一直想擁