每週一個 Algorithm,Review 一篇英文文章,總結一個工做中的技術 Tip,以及 Share 一個傳遞價值觀的東西!html
題目:Generate Parenthesesjava
題目大意:給出n對小括號,求出括號匹配的狀況,用列表存儲並返回,例如:n=3時,答案應爲:算法
[ "((()))", "(()())", "(())()", "()(())", "()()()" ]
解題過程:題目要求給出全部可能的組合,優先考慮遞歸法,遞歸終止條件是 字符長度達到 n × 2。考慮只有左右括號兩種字符,考慮遞歸狀況:學習
當左括號數量小於n(這好理解,n對括號須要n個左括號),添加左括號。測試
當右括號數量小於左括號數量(爲何不是小於n?由於這是無效情形),添加右括號。spa
還有其餘狀況嗎?考慮下邊界狀況, 彷佛沒有了。code
本身寫一寫測試用例驗證結果。orm
解法:htm
class Solution { public List<String> generateParenthesis(int n) { List<String> result = new ArrayList<>(); if (n > 0) { traceback(result, 0, 0, "", n); } return result; } /** * find all possible solutions * @param result * @param left total left parentheses * @param right total right parentheses * @param out current output * @param max max */ private void traceback(List<String> result, int left, int right, String out, int max) { if (out.length() == max * 2) { result.add(out); return; } if (left < max) { traceback(result, left + 1, right, out + "(", max); } if (right < left) { traceback(result, left, right + 1, out + ")", max); } } }
無,暫沒想到想讀的英文材料,博客?技術文章?小說?blog
Java Ring Buffer 原理及實現 http://tutorials.jenkov.com/java-performance/ring-buffer.html
這是以前讀消息隊列裏的基礎知識之一,用Java實現了兩種方式的ring buffer,我的喜歡第一種 Fill Count 的方式,比較巧妙。
最近體會交付的含義是:可以保證沒有任何問題地讓功能上線。
有一個功能作了比較久,年前就開始,一直到今天還在跑測試。中間通過一次需求的大修改,最近一週又頻繁調整需求,致使我這一週加了兩天班,結果本應該下週交付的功能到如今還有沒法上線的風險。
應當採起的態度是過程當中及時跟進,有大調整要跟組長及時反饋,不能等最後一週再去反饋問題。