arts-week4

每周完成一个ARTS:

每周至少做一个LeetCode的算法题,阅读和点评至少一篇文本技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是algorithm ,preview ,tip,share 简称ARTS)需要坚持至少一年。

Algorithm

一道算法题:

最长有效括号 ,这道题算法很经典,很美。

复制代码
class Solution {
    public int longestValidParentheses(String s) {
         char[] chars = s.toCharArray();
         return Math.max(findMax(chars, 0, 1, chars.length, '('), 
                         findMax(chars, chars.length -1, -1, -1, ')'));
     }

     public int findMax(char[] chars,int i,int flag, int end, char cTem) {
         int sum=0,max=0,currLen=0,validLen=0;
         for(;i != end;i += flag){
             sum += chars[i] == cTem ? 1:-1;
             currLen++;
             if(sum < 0){
                 max = max > validLen ? max : validLen;
                 sum = 0;
                 currLen = 0;
                 validLen = 0;
             }else if(sum == 0){
                 validLen = currLen;
             }
         }
         
         return max > validLen ? max : validLen;
     }
}
复制代码

 

 Preview

每周扇贝阅读三篇文章

 Tip

这周因为项目需要,学习了Axure软件画原型图,自学一个东西,能快速掌握还是很有成就感的。简单来说关键词是:元件库、属性、样式、动态面板、中继器、各种事件。记录一个比较经典的例子:省市区三级联动,用到了所有上面说的关键词。

Share

       知乎上看到一篇《知乎好问题:哪些思维方式是你刻意训练过的》的文章,对结构化思维讲的特别好,主要内容摘录如下:

 

1. 结构化思维是可培养且价值度高的能力,几乎是最值得刻意训练的能力;

2. 不存在思维清晰、沟通不清的情况,沟通不清楚就是还没思考透;

3. 面对一个问题的时候,先不要马上进入细节,而要先思考框架,如果无法找到框架,列出所有信息,用自下而上提炼的方法找到框架;

4. 结构要尽量符合 MECE(相互独立、完全穷尽)原则,如果不能,至少也符合 CE(完全穷尽);

5. 大多数结构都是常见的类型,找不到结构的时候,可以往这些类型上面靠:二维矩阵、流程、三要素、利益相关方;

6. 知识内化成能力的方法:将知识应用和融入自己的思维,来提高自己的沟通和思维能力;

7. 训练结构化思维的方法:累结构、写文章、讲议题。坚持三个月必有提升,坚持半年基本形成习惯。有同伴一起练习,效果更佳。

8. 如果你想继续深入研究,可以看芭芭拉明托的《金字塔原理》那本书,非常经典。

 

posted @ 2019-03-27 10:58  Frank413  阅读(101)  评论(0编辑  收藏  举报