精選的一些《編程之美》相關資料

又要到一年的招聘季了,肯定又有很多人開始啃《編程之美》了吧。這本書從開闊視野的角度來說很好,不過限于篇幅,有的問題并沒有講清楚(甚至問題敘述模棱兩可、被標榜為“鼓勵同面試官交流以獲得更多細節”);或者擴展問題本身很難,沒有給予解答和提示。在我看書并在網絡上查到的相關資料中,有很多重復的,也有不少基本沒什么價值,有價值的文章是少數。為了便于查閱,也為了方便后人不必在搜索上浪費時間,我把比較有價值的文章的鏈接整理在下面,并附以簡單說明。另外,對于一些比較早的資料,對應的是前幾版的《編程之美》;《編程之美》早起版本錯誤之多在勘誤表上可見一斑,不過既然新版已經修正了這些問題,那就請使用新書的讀者放心,并在瀏覽資料時注意。

  作為定位與《編程之美》類似的《劍指Offer》,上面有不少對相同問題的解;后者讀起來實戰的臨場感更強一些(測試用例、邊界條件等),兩本書都值得一讀。解法相同的題就沒必要重述了,而解法不同或者做了一些擴展的題目一并標在下面。

?

1.1 讓CPU占用率曲線聽你指揮

  《編程之美》讀書筆記23: 1.1 讓CPU占用率曲線聽你指揮

    很多完整程序,這里取個代表。事實上對于不了解windows編程的人來說,這個問題難度要高于3星。

?

1.3 一摞烙餅的排序

  烙餅啊烙餅{轉自ITEO

    對擴展問題做了詳細探討,原出處沒有找到。

?

1.7 ?光影切割問題

  逆序對:從插入排序到歸并排序

    我的拙作,介紹了逆序對的尋找方式的優化。

?

1.11 NIM(1)一排石頭的游戲

1.12 NIM(2)“拈”游戲分析

1.13 NIM(3)兩堆石頭的游戲

  拈及其各種變形遊戲

    第五頁對1.13擴展的NIM(4)游戲有很好的解釋,并且全文可以看作NIM游戲的閱讀材料。

    我有寫一篇總結NIM游戲規律的博文的計劃,不過不知道時間是否允許。

  《劍指Offer》面試題40:只出現一次的數字

    又是XOR的應用。

?

1.18 挖雷游戲

4.11 掃雷游戲的概率

  這兩道題原書沒有解。

  快照/轉帖

    最早解答4.11的博文的百度快照,源地址我打不開。

  編程之美掃雷篇

    另一個角度解答4.11問題。

  解答《編程之美》1.18問題1:給所有未標識方塊標注有地雷概率

    我的拙作之二,對于網絡上沒有分析的1.18問題1進行解答。

?

2.1 求二進制中1的個數

  《編程之美》讀書筆記——“求二進制數中1的個數”

    這個是我買的紙質版《編程之美》這一節的讀者反饋里的鏈接,不過翻了下電子版,似乎早期的沒有,因此附在這里。

  《劍指Offer》面試題10:二進制中1的個數

    如果輸入是負數,那么《編程之美》第一段代碼還能運行嗎?(盡管它與《劍指Offer》解一不同)

?

2.19 區間重合判斷

  編程之美2.19——區間重合判斷(線段樹)

    擴展問題二維空間的覆蓋問題的線段樹解。

?

2.21 只考加法的面試題

  《編程之美》2.21 只考加法的面試題

    這個題原書也沒有解,此文已經很詳細了。

?

3.4 從無頭鏈表中刪除節點

  《劍指Offer》面試題13:在O(1)時間刪除鏈表結點

    如果給定了單鏈表頭結點和一個結點的指針,要求刪除此結點(可能是頭結點或尾結點),又該如何求解?

3.6 編程判斷兩個鏈表是否相交

?  《編程之美》3.6判斷鏈表是否相交之擴展:鏈表找環方法證明

?

    我的拙作之三,其中原問題的解借鑒的部分請見注釋,此文主要是說明怎樣證明找環和找環入口算法的正確性。

    同時,根據判環算法,可以解決3.11的擴展問題:鏈表判斷是否有環的程序改錯。

?

3.7 隊列中取最大值操作問題

  《劍指Offer》面試題7:用兩個棧實現一個隊列

    介紹了另一個問題:如何用兩個隊列實現一個棧??

?

3.8 求二叉樹中節點的最大距離

  《編程之美: 求二叉樹中節點的最大距離》的另一個解法

    本節總結里提到的鏈接,其實個人認為代碼比原書中漂亮多了。我轉載了此文:http://www.cnblogs.com/wuyuegb2312/articles/3174476.html

?

3.10 分層遍歷二叉樹

  《編程之美:分層遍歷二叉樹》的另外兩個實現

    本節節末提到的鏈接。其實我似乎記得當初在上嚴蔚敏版《數據結構》課程時,分層遍歷二叉樹就是借助隊列實現的,思想和這個一樣。

?

3.11 程序改錯

  http://www.cnblogs.com/wuyuegb2312/archive/2013/05/26/3090369.html

我的拙作之四,全方位分析二分查找這個老生常談的問題,并不僅僅限于代碼改錯。有意避開陷阱要比掉入陷阱后想辦法爬出來更好,雖然這并不代表我們不需要知道如何爬上來。擴展問題——判斷鏈表是否有環的程序改錯——請看3.6的鏈接。

?

4.2 瓷磚覆蓋地板

  poj 2411 & 編程之美 4.2 瓷磚覆蓋地板

    是對擴展問題1“1*2瓷磚覆蓋8*8地板”的狀態動態規劃解法中我所看到的最簡潔易懂、空間占用少的。

    更可貴的是本文提供了p*q瓷磚覆蓋M*N地板可行性的一般結論和閱讀資料(MIT的pdf)。

  《劍指Offer》面試題9:斐波那契數列

    擴展問題中,2*M的地板覆蓋問題的遞推公式F(M)=F(M-1)+F(M-2),形式上是斐波那契數列。

?

4.3 買票找零

  從《編程之美》買票找零問題說起,娓娓道來卡特蘭數——兼爬坑指南

    我的拙作之五,標題說明一切。

?

4.5 磁帶文件存放優化

  《編程之美》4.5磁帶文件存放優化:最優解是怎樣煉成的

    我的拙作之六,原書對于解是最優解根本沒有說明白,只是舉了個例子而已;這篇文章將告訴你為什么是最優解。

?

4.7 螞蟻爬桿

  編程之美4.7螞蟻爬桿擴展問題附獵人抓狐貍(必勝策略)

    對擴展問題很詳細的探討。

?

另外再附兩個鏈接,請注意時效性:

  博文視點

    《編程之美》出版方,收錄了一些問題的網友的解答。

  薛迪的專欄

    很多解題法被《編程之美》收錄。





本文轉自五岳博客園博客,原文鏈接:www.cnblogs.com/wuyuegb2312/p/3185083.html,如需轉載請自行聯系原作者

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397662.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397662.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397662.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java 內置函數_java8 四大內置核心函數式接口

其他補充接口:一、Consumer:消費型接口(void accept(T t))來看一個簡單得例子:1 /**2 * 消費型接口Consumer3 */4 Test5 public void test1 () {6 consumo(500, (x) -> System.out.println(x));7 }89 public void consumo (double money, …

jQuery - (JQuery datatables api 使用解讀)

學習可參考&#xff1a;http://www.guoxk.com/node/jquery-datatables http://yuemeiqing2008-163-com.iteye.com/blog/2006942 分別導入css和js文件 <link href"~/Content/bootstrap.css" rel"stylesheet" /> <link href"~/Content/datatab…

Tomcat配置JNDI數據源

經過3個多小時的努力&#xff0c;配置JNDI數據源(主要是通過DBCP連接池)終于搞定&#xff5e;還是Tomcat官方的說明好&#xff0c;不過全是英文的&#xff0c;大概還看得懂&#xff0e;百度上那么花花綠綠的太多了&#xff0c;一個也沒成功&#xff01;&#xff0e;&#xff0e…

java 線程池 固定大小_使用Executors服務在Java中創建固定大小線程池的最佳方法...

查看源代碼,您將意識到&#xff1a;Executors.newFixedThreadPool(threadPoolSize);相當于&#xff1a;return new ThreadPoolExecutor(threadPoolSize, threadPoolSize, 0L, MILLISECONDS,new LinkedBlockingQueue());由于它不提供顯式的RejectedExecutionHandler,因此使用默認…

令牌驗證 token

通過令牌驗證在注冊中心控制權限&#xff0c;以決定要不要下發令牌給消費者&#xff0c;可以防止消費者繞過注冊中心訪問提供者&#xff0c;另外通過注冊中心可靈活改變授權方式&#xff0c;而不需修改或升級提供者。 可以全局設置開啟令牌驗證&#xff1a; <!--隨機token令…

easybcd 支持 windows 10 和 ubuntu 14.04 雙系統啟動

家里計算機系統 windows 10 全新安裝。 原本是雙系統的&#xff0c;還有一個ubuntu。 windows 10 安裝以后&#xff0c;恢復ubuntu就是問題了。 (事后經驗&#xff1a;請不要立刻安裝bcd修改工具) 最初的方法是利用easybcd修改bcd記錄。操作是成功的&#xff0c;但系統重新啟動…

需求分析與原型設計

結對者&#xff1a;031402140李嚴 0314026617林瑞斌 需求分析與原型設計 NABCD模型 N&#xff08;Need&#xff0c;需求&#xff09;: 收集信息的過程太過繁瑣&#xff0c;有班級總負責人需匯總每一個同學的志愿并填入excel表中&#xff0c;上交年級負責人&#xff0c;年級負責…

java導出表格_java怎么導出excel表格

import com.spire.xls.ExcelVersion;import com.spire.xls.Workbook;import com.spire.xls.Worksheet;public class InsertArray {public static void main(String[] args) {//創建Workbook對象Workbook wb new Workbook();//獲取第一張62616964757a686964616fe4b893e5b19e313…

for 循環 和 Array 數組對象

博客地址&#xff1a;https://ainyi.com/12 for 循環 和 Array 數組對象方法 for for-in for-of forEach效率比較 - 四種循環&#xff0c;遍歷長度為 1000000 的數組疊加&#xff0c;得到的時間差&#xff1a;for 3for-in 250for-of 7forEach 44- 效率速度&#xff1a;for >…

IntelliJ IDEA---java的編譯工具【轉】

轉自&#xff1a;http://baike.baidu.com/link?urlsEpS0rItaB9BiO3i-qCdGSYiTIVPSJfBTjSXXngtN2hBhGl1j36CYQORKrbpqMHqjvu3MOfkgVzpMqr8To2l2q IDEA 全稱 IntelliJ IDEA&#xff0c;是java語言開發的集成環境&#xff0c;IntelliJ在業界被公認為最好的java開發工具之一&#…

OC中文件讀取類(NSFileHandle)介紹和常用使用方法

NSFileHandle 1.NSFileManager類主要對于文件的操作(刪除&#xff0c;修改&#xff0c;移動&#xff0c;賦值等等) //判斷是否有 tagetPath 文件路徑&#xff0c;沒有就創建NSFileManager *fileManage [NSFileManager defaultManager];BOOL success [fileManage createFileAt…

java filereader讀文件_Java FileReader讀文件

import java.io.*;class FileReaderDemo{public static void main(String[] args) throws IOException{//創建一個文件讀取流對象&#xff0c;和指定名稱的文件相關聯。//要保證該文件是已經存在的&#xff0c;如果不存在&#xff0c;會發生異常FileNotFoundExceptionFileReade…

struts2攔截器

struts攔截器 圖&#xff1a; 1、攔截器是什么&#xff1f; 分離關注&#xff1a; 完成一個功能&#xff0c;可以寫在一個類中&#xff0c;然后一個類中4個步驟&#xff0c;實現該類完成。 我們可以將4個步驟寫在4個類中&#xff0c;然后每一個類完成一部分功能&#xff0c;然后…

Springboot-Jpa多數據庫配置-2.0+版本

pom.xml增加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId></dependency> 配置表同JdbcTemplate配置. 主數據源: ConfigurationEnableTransactionManagementEna…

Windows虛擬地址轉物理地址(原理+源碼實現,附簡單小工具)

By Lthis 上個月就想寫了&#xff0c;一直沒時間...網上大概搜了一下&#xff0c;原理與操作倒是一大堆&#xff0c;一直沒看到源碼實現&#xff0c;總得有人動手&#xff0c;這回輪到我了。東西寫得很爛&#xff0c;請大牛勿噴。一直覺得靠源碼的方式驅動學習是非常好的一種學…

python裝飾器的使用

借用裝飾器&#xff0c;我們可以批量的對老的函數進行改造或擴展老函數功能&#xff0c;比如需要對函數的接收參數進行過濾&#xff0c;Flash的url路由功能就是使用的這個方式 def dropoushu(): # 這一層函數可以去掉&#xff0c;如果去掉了&#xff0c;則使用checkjiou這種方…

7_文件上傳漏洞

文件上傳漏洞 當文件上傳時&#xff0c;若服務端腳本語言未對上傳的文件進行嚴格驗證和過濾&#xff0c;若惡意用戶上傳惡意的腳本文件時&#xff0c;就有可能控制整個網站甚至是服務器&#xff0c;這就是文件上傳漏洞。 權限 1.網站后臺權限&#xff1a;登陸了后臺&#xff0…

mysql數據庫如何實現分頁查詢_不同數據庫的分頁查詢實現方法總結

分頁查詢是數據庫查詢中經常用到的一項操作&#xff0c;對查詢出來的結果進行分頁查詢可以方便瀏覽。那么Oracle、SQL Server、MySQL是如何實現查詢的呢&#xff1f;本文我們就來介紹這一部分內容。首先我們先看一下SQL Server 數據庫中SQL語句查詢分頁數據的解決方案&#xff…

POJ - 3842 An Industrial Spy dfs(水)

題意:給你一串數字&#xff0c;最少一個&#xff0c;最多七個&#xff0c;問用這里面的數字能組成多少素數&#xff0c;不重復。 思路&#xff1a;之前還遍歷10000000的每一個素數&#xff0c;結果超時&#xff0c;后來發現直接dfs就可以了&#xff0c;只是標記一下做過的數。 …

飛機大戰小游戲1.0版本

小時候大家應該都玩過飛機大戰吧&#xff0c;這就是仿的一個飛機大戰&#xff0c;但是沒有寫的很全&#xff0c;只能玩一次&#xff0c;死掉之后需要刷新頁面玩第二次&#xff0c;話不說多&#xff0c;上代碼&#xff1a; 初始頁面&#xff1a; 整個的html代碼還是很少&#xf…