程序員的算法趣題2
[日]增井敏克
相關主題
商品描述
在電腦技術發展日新月異的當下,“算法”是不變的重要基石。要想編寫高效率的程序,就需要優化算法。無論開發工具如何進化,熟識並能靈活運用算法仍然是對程序員的基本要求。本書作者“寓教於題”,精心設計了70道算法趣題。所有問題都貼近生活和實際應用,兼具實用性和趣味性。讀者在自行思考和解題後,可以對比查看作者分析的解題思路和關鍵點,閱讀基於Ruby和JavaScript編程語言編寫的源代碼示例,從而掌握不同的算法實現思路和程序優化技巧。
作者簡介
增井敏克(作者)
1979年生于奈良,毕业于大阪府立大学研究生院。增井IT工程师事务所代表、注册工程师(信息工程学方向)。从事IT技能提升指导、软件开发以及信息安全相关的咨询工作等。掌握C/C++、C#、Java、PHP和Ruby等20多种编程语言。曾在面向IT工程师提供业务技能评估服务的平台CodeIQ上负责人气栏目“每周算法”的出题和评审工作。作品有《完全图解网络与信息安全》《IT用语图鉴》等。
目錄大綱
序章解答謎題的技巧 001
掌握典型的處理方式 002
例題1 內存化和動態規劃算法 003
例題2 排列組合 008
第 1章 入門篇★
動手編程尋找感覺 011
思考多種解題方法 012
Q01 少數服從多數 013
Q02 山手線的印章比賽 017
Q03 羅馬數字的轉換規則 021
Q04 電子鐘的亮燈數 025
Q05 楊輝三角 029
Q06 在長方形中取正方形 033
Q07 讓文件恢復原位 037
Q08 合並單元格與一筆畫 041
Q09 八進制自冪數 043
Q10 採用亞當斯方式分配議席 047
Q11 奧運會主辦城市投票 051
Q12 用分數表示圓周率的近似值 055
Q13 反復排序2 059
Q14 兌換外幣 065
Q15 深度優先搜索按廣度優先排列節點的二叉樹 071
Q16 最簡分數 075
第 2章 初級篇 ★★
通過內存化等方式提高處理速度 079
數學謎題對日常的軟件開發有用嗎 080
Q17 一起乘纜車 081
Q18 緊急通道的逃生方式 083
Q19 佈局合理的窗簾掛鉤 087
Q20 醉酒後的回家路 091
Q21 讀書計劃 095
Q22 通過百格計算查找最短路徑 099
Q23 巧排座位 105
Q24 預約選座的奧秘 109
Q25 左右對稱的二叉查找樹 115
Q26 指定次數的猜拳游戲 119
Q27 巧分巧克力 123
Q28 設計高爾夫球場 127
Q29 平分蛋糕2 131
Q30 輪流取卡片 135
Q31 無法排序的卡片 139
Q32 地鐵高峰期的乘車禮儀 145
Q33 白色情人節的回禮 149
Q34 左右交替移動 153
Q35 智慧型組織者的收錢妙招 157
Q36 上下左右顛倒數字 161
Q37 巧開機械密碼鎖 165
Q38 全員大換位 169
第3章 中級篇 ★★★
利用數學思維實現高速處理 173
由小及大地找尋規律 174
Q39 同色相鄰即消除 175
Q40 兩船相遇問題 181
Q41 開始菜單的磁貼 185
Q42 忙碌的聖誕老人 191
Q43 同桌但不相鄰的情侶 193
Q44 三進制問題 197
Q45 一筆畫的交叉點 201
Q46 一筆畫的拐彎問題 205
Q47 壓縮字符串 209
Q48 平分卡片數值 215
Q49 按申請編號表分組 219
Q50 按戰鬥力給精靈分組 223
Q51 用位置相鄰的數字構成平方數 227
Q52 玩轉俄羅斯套娃 233
Q53 運送重量為質數的貨物 237
Q54 用天平稱重 241
Q55 十字形翻轉統一色系 245
Q56 指定次數的猜拳游戲2 249
Q57 車站的設置方式 253
Q58 波蘭表示法和去括號 257
Q59 比分大作戰 263
Q60 三子棋的玩法 267
第4章 高級篇 ★★★★
正確實現復雜的處理 271
試著查一下代碼庫 272
Q61 交叉排序 273
Q62 破損的晾衣架 279
Q63 永不停歇的臺球 285
Q64 以最短路徑往返的圖形 289
Q65 n皇後翻轉問題 293
Q66 整數倍的得票數 301
Q67 迷宮的最長路徑 305
Q68 Base64格式反轉 311
Q69 文件數各異的文件夾結構 319
Q70 不買和他人一樣的商品 323