每週一個 Algorithm,Review 一篇英文文章,總結一個工做中的技術 Tip,以及 Share 一個傳遞價值觀的東西!程序員
寫在前面的話。不知不覺已經落下ARTS的操練快五個月了,期間經歷了辭職、賦閒在家、找新工做、搬新家等階段,到今天算是入職新公司兩個月。算法
之因此從新想起來要繼續操練,主要是我在耗子叔的羣裏看到有人堅持完成了一年的練習。這激發了我,讓我有種要從新撿起來的衝動。數據庫
操練身體,操練敬虔,操練技術,任何同樣堅持都會面對想要放棄的念頭。我想最怕的不是停歇,而是就此止步了,而整裝上陣,或許會是一個新的起點....緩存
題目:38. 報數函數
描述:報數序列是一個整數序列,按照其中的整數的順序進行報數,獲得下一個數。其前五項以下:學習
1. 1 2. 11 3. 21 4. 1211 5. 111221
1 被讀做 "one 1" ("一個一") , 即 11。
11 被讀做 "two 1s" ("兩個一"), 即 21。
21 被讀做 "one 2", "one 1" ("一個二" , "一個一") , 即 1211。code
給定一個正整數 n(1 ≤ n ≤ 30),輸出報數序列的第 n 項。blog
注意:整數順序將表示爲一個字符串。ip
解題過程:相對簡單的題,不須要特別的算法知識,找到規律便可。基本上就是遍歷字符串,記錄字符以及重複出現的次數,而後轉化爲一個二位數。另寫一個函數便可。leetcode
解法:https://leetcode.com/submissions/detail/250705719/
題目: 技術債務的隱喻
馬丁大叔於2003年首次寫下這篇文章,最近重寫一遍,發表在我的博客上。
技術債務,做爲一個隱喻,表明的是軟件中的缺陷。這些缺陷由不太關心質量的程序員在作出改動時被引入到系統中, 分佈在各處,會給將來的軟件變更帶來額外的開銷,就好像財務負債裏要還的利息同樣。
他給出的建議是,就像咱們對待財務負債那樣,一次償還一部分。在變動的地方,花少部分時間,先把那些有缺陷的代碼移除,引入更適合的結構。這樣作的好處是,越是變動頻繁的地方,有缺陷的代碼就會消失越快,而那些穩定的問題代碼則會被保留下來,不須要大力氣去改動。
對個人啓發是,下次開發軟件代碼時,若是遇到技術債務,先償還一部分,不用帶着很大壓力去作大改動。
經常使用緩存更新的套路:
失效: 程序從緩存中取數據,緩存沒有,從數據庫取數據,成功後放到緩存中。
命中:程序從緩存中取數據,返回
更新:程序先更新數據庫數據,成功後,失效緩存數據
無