当我在刷题的时候,到底在干些什么(扯淡文)

最近为了准备笔试,每天总会抽出点打游戏的时间刷刷 leetcode
刷题嘛,无非就是看着题目楞想,每种思路试一试,试不出来看提示,还不行看别人的答案然后学思路再换种语言默写一遍。
那么这个过程到底是在干啥呢?——学习
让我们站在旁观者的角度上审视一下发生了什么。

1,遇到一个问题,第一反应是能不能 一眼看出通解,不行就看能不能 分治 动归,搜索。。。(我会的套路太少,只能拽这几个了 -_-) 这个顺序是根据经验来的,再有就是题目要求和输入本来的性质。如果一直做动归的题,突然来个不是动归的,第一反应可能还是动归,为啥,训练的都是动归的,形成思维定势了(false positive) (本山:"等于二!"范伟:"你刚才不是说三么。。。")
2,确定思路以后,解题最难的就是看出不变量,可是能看出来往往问题已经解出来了。就像用归纳法证明,你首先已经把不变量看出来了,才会去构造那个不变量,而这个不变量往往很难直接看出来的,没有灵感则只能先楞构造,然后看看有没有不变量出现。
也就是大师先看出了答案再写出程序,菜鸡先瞎凑程序然后看能不能凑出答案。
这就是为什么光知道思路是不够的,单说动归,前缀,后缀,中间向两边。构造不变量的 f(x) 可能是最小值,最大值,长度,数量等等等等。看到答案的时候往往只能感叹,我去,递推公式这么简单我怎么就没想到呢。。。

那么大师为什么能成为大师呢?因为他见得多了,脑子里不知怎么的就大概看出了很好的性质。
大师也不是谦虚,你去问他,他是真的不知道怎么就看出来。
因为他的脑子已经训练好了嘛。

所以真的是希望能有这样的专家系统来辅助决策:
1,输入一个算法题,想要的时间复杂度,输出应该用什么思路,可能是用了哪些数据结构
2, 输入一组输入输出,输出可能是通过什么不变量构造出来的

听说 deepcoder 已经能做这方面的事了。https://www.zhihu.com/question/56250357
真希望 编程大师 满地走的时代早日来临啊。

弱鸡如我只能认为,编程就是瞎&#猜,只不过有的人猜的准,猜的优雅,简洁,高性能,可复用而已。
创造力到底是怎么回事我真的不懂,我也不觉得有那种看了就能变聪明的书,因为我不信看某种书就能从根本上改变我脑子的构造。
人生而不平等,有的人脑子训练起来就是快,可能他们神经元连得少吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1 标记-清除算法 思想:如同它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象(...
    湾湾_a434阅读 152评论 0 0
  • 接下来讲我们最重要的内容:朋友圈成交文案撰写技巧。因为大家都知道我们是做微商的。那微商里面我们凭借这个点 。那在 ...
    mxxyfyz阅读 1,058评论 0 1
  • 前几天独自一人在家时,忍不位淋漓尽致地痛苦地哭了一通,因为某些原因想起了去世多年的我唯一的亲弟弟,那份失去手足...
    以琳阅读 149评论 0 1
  • 前几天和一个婆婆聊天,婆婆说她看了倪萍主持的节目:等着我,里面有一个只有上半身的残疾人,因为共同的爱好-唱歌,认识...
    微芳阅读 217评论 0 1