每周一个 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 的方式,比较巧妙。
最近体会交付的含义是:可以保证没有任何问题地让功能上线。
有一个功能作了比较久,年前就开始,一直到今天还在跑测试。中间通过一次需求的大修改,最近一周又频繁调整需求,致使我这一周加了两天班,结果本应该下周交付的功能到如今还有没法上线的风险。
应当采起的态度是过程当中及时跟进,有大调整要跟组长及时反馈,不能等最后一周再去反馈问题。