arts_week5

每周完成一个ARTS:

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

Algorithm

一道算法题:

实现strStr() 

class Solution {
    public int strStr(String haystack, String needle) {
         if(needle == null || "".equals(needle)){
             return 0;
         }
         if(haystack == null || "".equals(haystack)){
             return -1;
         }
         if(needle.length() > haystack.length()){
             return -1;
         }
         char [] h = haystack.toCharArray();
         char [] n = needle.toCharArray();
         boolean temp = true;
         for(int i=0;i<h.length;i++){
             if(h[i] == n[0] && n.length<=h.length-i){
                 temp = true;
                 for(int j=1;j<n.length;j++){
                     if(n[j] != h[i+j]){
                         temp = false;
                         break;
                     }
                 }
                 if(temp){
                     return i;
                 }
             }
         }
         return -1;   
    }
}

 

 Preview

每周扇贝阅读三篇文章

 Tip

Oracle导出表结构,在文档整理的时候可能会用到,最有效的方法是直接用sql查询出来。

原理:通过Oracle中的user_tab_cols, user_col_comments, user_constraints, user_cons_columns表联合查询。
  1、user_tab_cols用来获取对应用户表的列信息;
  2、user_col_comments用来获取对应用户表列的注释信息;
  3、user_constraints用来获取用户表的约束条件;
  4、user_cons_columns约束中用户可访问列。

 

select t.table_name,
       t.column_name,
       c.comments,
       decode(t.nullable, 'N', '否', 'Y', '是') as unllable,
       decode(t.data_type,
              'DATE',
              t.data_type,
              t.data_type || '(' || t.data_length || ')') as data_type,
       (SELECT CASE
                 WHEN t.column_name = m.column_name THEN
                  1
                 ELSE
                  0
               END
          FROM DUAL) isPrimaryKey
  FROM user_tab_cols t,
       user_col_comments c,
       (select m.column_name
          from user_constraints s, user_cons_columns m
         where lower(m.table_name) = 'ac01'
           and m.table_name = s.table_name
           and m.constraint_name = s.constraint_name
           and s.constraint_type = 'P') m
 WHERE lower(t.table_name) = 'ac01'
   and c.table_name = t.table_name
   and c.column_name = t.column_name
   and t.hidden_column = 'NO'
 order by t.column_id;

 

Share

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

 

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

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

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

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

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

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

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

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

 

posted @ 2019-04-10 16:31  Frank413  阅读(73)  评论(0编辑  收藏  举报