arts_week5
每周完成一个ARTS:
每周至少做一个LeetCode的算法题,阅读和点评至少一篇文本技术文章,学习至少一个技术技巧,分享一篇有观点和思考的技术文章(也就是algorithm ,preview ,tip,share 简称ARTS)需要坚持至少一年。
Algorithm
一道算法题:
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;
知乎上看到一篇《知乎好问题:哪些思维方式是你刻意训练过的?》的文章,对结构化思维讲的特别好,主要内容摘录如下:
1. 结构化思维是可培养且价值度高的能力,几乎是最值得刻意训练的能力; 2. 不存在思维清晰、沟通不清的情况,沟通不清楚就是还没思考透; 3. 面对一个问题的时候,先不要马上进入细节,而要先思考框架,如果无法找到框架,列出所有信息,用自下而上提炼的方法找到框架; 4. 结构要尽量符合 MECE(相互独立、完全穷尽)原则,如果不能,至少也符合 CE(完全穷尽); 5. 大多数结构都是常见的类型,找不到结构的时候,可以往这些类型上面靠:二维矩阵、流程、三要素、利益相关方; 6. 知识内化成能力的方法:将知识应用和融入自己的思维,来提高自己的沟通和思维能力; 7. 训练结构化思维的方法:累结构、写文章、讲议题。坚持三个月必有提升,坚持半年基本形成习惯。有同伴一起练习,效果更佳。 8. 如果你想继续深入研究,可以看芭芭拉明托的《金字塔原理》那本书,非常经典。