每周学算法/读英文/知识点心得分享 3.4 - 3.8

每周一个 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: 价值观

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

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

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

原文地址:https://www.cnblogs.com/andrew-chen/p/10497471.html

时间: 2024-10-27 13:46:47

每周学算法/读英文/知识点心得分享 3.4 - 3.8的相关文章

每周学算法/读英文/知识点心得分享 1.28 - 2.1

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:String to Integer (atoi) 解题过程: 这题主要考虑异常情况,比如空字符串,开头 +/- ,非数字字符,空格,最大最小边界值处理.学到一个Char转Int技巧就是直接用字符减去‘0’获得差值就是数字. 第三次提交通过的. 解法:https://raw.githubusercontent.com/chy9966

每周学算法/读英文/知识点心得分享 2.4 - 2.8

每周一个 Algorithm,Review 一篇英文文章,总结一个工作中的技术 Tip,以及 Share 一个传递价值观的东西! Algorithm: 学习算法 题目:https://leetcode.com/problems/zigzag-conversion/ 解题过程: 刚开始没看懂什么意思,看了两遍,明白是把字符串从上至下按照锯齿形排列,然后按行输出. 根据题目提示可以继续做一下延伸,把1-20 按 n=5 自己排列一下. 这种题一般有规律,找出要打印的字符在字符串里的下标,收集在一起就

1165: 零起点学算法72——首字母变大写

1165: 零起点学算法72--首字母变大写 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 705  Accepted: 439[Submit][Status][Web Board] Description 输入一个英文句子,将每个单词的第一个字母改成大写字母. Input 输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行. Output 请输出按照要求改写后的英文句

高斯模糊算法的全面优化过程分享(二)。

      相关链接: 高斯模糊算法的全面优化过程分享(一) 在高斯模糊算法的全面优化过程分享(一)一文中我们已经给出了一种相当高性能的高斯模糊过程,但是优化没有终点,经过上一个星期的发愤图强和测试,对该算法的效率提升又有了一个新的高度,这里把优化过程中的一些心得和收获用文字的形式记录下来. 第一个尝试   直接使用内联汇编替代intrinsics代码(无效) 我在某篇博客里看到说intrinsics语法虽然简化了SSE编程的难度,但是他无法直接控制XMM0-XMM7寄存器,很多指令中间都会用内

1167: 零起点学算法74——Palindromes _easy version

1167: 零起点学算法74--Palindromes _easy version Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1754  Accepted: 1023[Submit][Status][Web Board] Description "回文串"是一个正读和反读都一样的字符串,比如"level"或者"noon"等等就是回文串.请写一个

我的WebX框架学习总结与心得分享

最近学习了webx框架, 利用博客园跟大家分享一下自己的学习心得; 周建旭 2014-08-21 网上关于webx的资料少的可怜, 怎么办?  这种情况下不用去求助别人求人只会耽误时间, 不用畏惧; 看文档写demo 就ok了; API是最好的资料, webx官方有个pdf的中文文档提供下载, 建议在学webx之前, 先整体浏览一遍文档以便于把握webx框架的大体脉络, 第一遍看的过程不必钻牛角尖 ; 然后结合淘宝官方Michael Zhou的Petstore(宠物商店)例子对比一下文档(那块不

1177: 零起点学算法84——Box of Bricks

1177: 零起点学算法84--Box of Bricks Time Limit: 1 Sec  Memory Limit: 32 MB   64bit IO Format: %lldSubmitted: 769  Accepted: 268[Submit][Status][Web Board] Description Little Bob likes playing with his box of bricks. He puts the bricks one upon another and

科注学习班心得分享-更新第9集

搜索 观看记录 视频手机站 文章手机站 全部导航 首页 净宗祖师大德 本网导师 无量寿经汇集 刘素云老师专集 佛号梵呗 往生见证 净土辑要 传统文化 直播 本周热搜词:无量寿经- 第10集无量寿经- 第5集无量寿经- 第11集无量寿经- 第7集无量寿经- 第6集繁體中文版 在线留言 首页  »  刘素云老师视频  »  学习班心得分享 » 一句佛号大总持 但念弥陀大事毕 随喜赞叹: 科注学习班心得分享-更新第9集 小题:一句佛号大总持 但念弥陀大事毕 主讲:刘素云老师 时间:2017-11-30

0基础学算法 第二弹 排序

大家好啊,这是0算法基础学算法系列第二篇,上次我在第一弹里讲了关于流程图的内容,我寻思着,这次讲些什么好呢,于是我决定,教大家一个很基础的算法,那就是排序,排序有很多方法,如果你有更多方法请在评论区里留言哦. 排序在程序中特别实用,常用的有快速排序,桶排序,冒泡排序,插入排序等等,在这里我不建议使用冒泡排序或者插入排序,建议桶排序和快速排序,这两个排序非常实用,时间复杂度低,理解起来也很容易,首先,你先思考一下,怎么用程序进行排序,然后你再来看看你的思路合理不合理,最后试着用程序实现它,实现后你