Programming Pearls筆記之二

2022-03-19 02:29:13 字數 693 閱讀 5946

programming pearls筆記之二

這裡是程式設計珠璣(programming pearls)第二部分(中間五個專欄)的筆記.

maxendinghere是以當前下標為最後乙個元素的最大子串行和(只有當包含當前元素值為0時可以是空序列),maxsofar是從陣列開始到當前下標為止的最大子串行和.假設對於當前下標i-1成立.下面將這個狀態推廣到i.對於i,這時最大子串行和只有兩種可能.要麼還是maxsofar,要麼是maxendinghere+x[i]. maxendinghere+[i]若小於0,則從0開始,於是**如下.

maxsofar = 0

maxendinghere = 0

for i = [0, n]

/* invariant: maxendinghere and maxsofar

are accurate for x[0..i-1]

*/ maxendinghere = max(maxendinghere + x[i], 0)

maxsofar = max(max, maxendinghere)

其實這和上面的偽**基本是一樣的.

date: 2012-07-25 三

author: hu wenbiao

org version 7.8.11 with emacs version 24

validate xhtml 1.0

Programming Pearls第2章思路總結

給定乙個最多包含40億個隨機排列的32位整數的順序檔案,找出乙個不在檔案中的32位整數。答案見 此部落格 總結 時刻想著利用二分搜尋來解決問題 思路一 若要旋轉k位,則每個字元向前 向後 移動k位。此方法只須n次操作,且僅需乙個元素的額外空間,但此方法實際沒比較慢,因為不能很好地利用cache。思路...

《浪潮之巔》筆記之七

浪潮之巔 筆記之七 google則是研究和開發不分家,google基本上沒有研究部門,所有開發人員遇到實際問題需要研究時,因為沒有可以指望的研究做後盾,只好自己做研究 實際上google有乙個很小的研究部門,但是所有的研究員都在第一線搞開發 這樣,google幾乎每個工程師不僅需要會寫程式做具體的事...

《浪潮之巔》筆記之六

浪潮之巔 筆記之六 天使投資本質上是早期風險投資。天使投資人,簡稱天使,常常是這樣一些有錢人 他們很多人以前成功創辦了公司,對科技很敏銳,又不願意再辛辛苦苦創業了,希望出錢讓別人幹。風投過程 關鍵之一,智財權很重要 關鍵之二,是否有數量級的提高是衡量一項新技術是革命性的還是革新性的關鍵 關鍵之三,商...