zoukankan      html  css  js  c++  java
  • 每周学算法/读英文/知识点心得分享 3.4

     每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西!

    Algorithm: 学习算法

    题目:Generate Parentheses

    题目大意:给出n对小括号,求出括号匹配的情况,用列表存储并返回,例如:n=3时,答案应为:

    [
      "((()))",
      "(()())",
      "(())()",
      "()(())",
      "()()()"
    ]

    解题过程:题目要求给出所有可能的组合,优先考虑递归法,递归终止条件是 字符长度达到 n × 2。考虑只有左右括号两种字符,考虑递归情况:

    当左括号数量小于n(这好理解,n对括号需要n个左括号),添加左括号。

    当右括号数量小于左括号数量(为什么不是小于n?因为这是无效情形),添加右括号。

    还有其他情况吗?考虑下边界情况, 似乎没有了。

    自己写一写测试用例验证结果。

    解法:

    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);
            }
    
        }
    }

    Review: 学习英文

    无,暂没想到想读的英文材料,博客?技术文章?小说?

    Tips: 知识点

    Java Ring Buffer 原理及实现 http://tutorials.jenkov.com/java-performance/ring-buffer.html

    这是之前读消息队列里的基础知识之一,用Java实现了两种方式的ring buffer,个人喜欢第一种 Fill Count 的方式,比较巧妙。

    Share: 价值观

    最近体会交付的含义是:能够保证没有任何问题地让功能上线。

    有一个功能做了比较久,年前就开始,一直到今天还在跑测试。中间经过一次需求的大修改,最近一周又频繁调整需求,导致我这一周加了两天班,结果本应该下周交付的功能到现在还有无法上线的风险。

    应当采取的态度是过程中及时跟进,有大调整要跟组长及时反馈,不能等最后一周再去反馈问题。

  • 相关阅读:
    第十九周作业
    第十八周作业
    第十七周作业
    第16周作业
    第15周作业
    第14周作业作业
    第13周作业
    第12周作业
    第二阶段月考
    RDB和AOF的区别
  • 原文地址:https://www.cnblogs.com/andrew-chen/p/10497471.html
Copyright © 2011-2022 走看看