本書是一本解謎式的趣味算法書, 從實(shí)際應(yīng)用出發(fā), 通過趣味謎題的解謎過程, 引導(dǎo)讀者在愉悅中提升思維能力、掌握算法精髓。 此外, 本書作者在謎題解答上, 通過算法的關(guān)鍵原理講解, 從思維細(xì)節(jié)入手, 發(fā)掘啟發(fā)性算法新解, 并輔以Ruby、JavaScript等不同語言編寫的源代碼示例, 使讀者在算法思維與編程實(shí)踐的分合之間, 切實(shí)提高編程能力。
1.2016日本IT技術(shù)圖書大賞獲獎(jiǎng)作品
2.日本人氣算法訓(xùn)練欄目“每周算法”精選輯錄
3.14萬程序員挑戰(zhàn)過的算法PUZZLE
4.趣味解謎 探索簡(jiǎn)潔高效的編程之道
5.回歸原理 獲取啟發(fā)性編程新思維
6.一題多解 源代碼均可下載
增井敏克<作者>
1979年生于奈良,畢業(yè)于大阪府立大學(xué)研究生院。增井IT工程師事務(wù)所代表、注冊(cè)工程師(信息工程學(xué)方向)。從事旨在“將商務(wù)、數(shù)學(xué)和IT結(jié)合以正確、高效使用計(jì)算機(jī)”的技能提升指導(dǎo)、軟件開發(fā)以及信息安全咨詢等工作。掌握C/C++、C#、Java、PHP和Ruby等20多種編程語言。著作有《在家就能學(xué)會(huì)的安全基礎(chǔ)》等。目前在面向IT工程師提供業(yè)務(wù)技能評(píng)估服務(wù)的平臺(tái)CodeIQ上負(fù)責(zé)人氣欄目“每周算法”的出題和評(píng)審工作。
第1章 入門篇
嘗試用編程解決問題 001
二進(jìn)制和十進(jìn)制 002
Q01 回文十進(jìn)制數(shù) 003
Q02 數(shù)列的四則運(yùn)算 007
Q03 翻牌 011
Q04 切分木棒 015
Q05 還在用現(xiàn)金支付嗎 019
Q06。ǜ陌妫┛祭澆孪搿023
Q07 日期的二進(jìn)制轉(zhuǎn)換 025
Q08 優(yōu)秀的掃地機(jī)器人 029
Q09 落單的男女 031
Q10 輪盤的最大值 035
第2章 初級(jí)篇
解決簡(jiǎn)單問題 體會(huì)算法效果 039
性價(jià)比意識(shí) 040
Q11 斐波那契數(shù)列 041
Q12 平方根數(shù)字 045
Q13 有多少種滿足字母算式的解法 049
Q14 世界杯參賽國(guó)的國(guó)名接龍 055
Q15 走樓梯 059
Q16 3根繩子折成四邊形 063
Q17 挑戰(zhàn)30人31足 067
Q18 水果酥餅日 071
Q19 朋友的朋友也是朋友嗎 075
Q20 受難立面魔方陣 079
Q21 異或運(yùn)算三角形 083
Q22 不纏繞的紙杯電話 087
Q23 二十一點(diǎn)通吃 089
Q24 完美的三振出局 091
Q25 鞋帶的時(shí)髦系法 093
Q26 高效的立體停車場(chǎng) 097
Q27 禁止右轉(zhuǎn)也沒關(guān)系嗎 101
Q28 社團(tuán)活動(dòng)的最優(yōu)分配方案 105
Q29 合成電阻的黃金分割比 109
Q30 用插線板制作章魚腳狀線路 113
第3章 中級(jí)篇
優(yōu)化算法 實(shí)現(xiàn)高速處理 117
時(shí)間復(fù)雜度記法和計(jì)算量 118
Q31 計(jì)算最短路徑 119
Q32 榻榻米的鋪法 123
Q33 飛車與角行的棋步 127
Q34 會(huì)有幾次命中注定的相遇 131
Q35 0和7的回文數(shù) 133
Q36 翻轉(zhuǎn)骰子 137
Q37 翻轉(zhuǎn)7段碼 143
Q38 填充白色 149
Q39 反復(fù)排序 153
Q40 優(yōu)雅的IP地址 157
Q41 只用1個(gè)數(shù)字表示1234 161
Q42 將牌洗為逆序 165
Q43 讓玻璃杯水量減半 169
Q44 質(zhì)數(shù)矩陣 173
Q45 排序交換次數(shù)的最少化 177
Q46 唯一的○×序列 181
Q47 格雷碼循環(huán) 185
Q48 翻轉(zhuǎn)得到交錯(cuò)排列 189
Q49 欲速則不達(dá) 193
Q50 完美洗牌 197
Q51 同時(shí)結(jié)束的沙漏 201
Q52 糖果惡作劇 205
Q53 同數(shù)包夾 209
Q54 偷懶的算盤 213
Q55 平分蛋糕 217
第4章 高級(jí)篇
改變思路 讓程序速度更快 221
編碼風(fēng)格 222
Q56 鬼腳圖中的橫線 223
Q57 最快的聯(lián)絡(luò)網(wǎng) 229
Q58 丟手絹游戲中的總移動(dòng)距離 233
Q59 合并單元格的方式 239
Q60 分割為同樣大小 247
Q61 不交叉,一筆畫下去 253
Q62 日歷的最大矩形 259
Q63 迷宮會(huì)合 263
Q64 麻煩的投接球 269
Q65 圖形的一筆畫 273
Q66 設(shè)計(jì)填字游戲 279
Q67 不挨著坐是一種禮節(jié)嗎 283
Q68 異性相鄰的座次安排 287
Q69 藍(lán)白歌會(huì) 291