0%

ARTS 2020 Week 04

Algorithm

42. 接雨水

这道题是困难难度。官方提供了暴力、动态规划、栈和双指针四种解法。暴力法是对于数组中的每个元素,我们找出下雨后水能达到的最高位置,等于两边最大高度的较小值减去当前高度的值。后面三种是在暴力法的基础上进行的优化。

Review

How To Understand Things

  1. 作者在青少年时期发现一些最聪明的人在证明一个理论或者解决一个问题后会回头继续看这个问题并尝试去找不同的证明,而大多数人则会在“获得答案”后停止思考。聪明人的“硬件”并不相同,有的人思考、计算或者阅读很快,而有的聪明人却并不快。而聪明人的“软件”则有相同之处,并且可以通过努力学习获得。一个人的智力并不是固定不变的。

  2. 上面提到的“不满足现有的答案”需要付出很多努力去思考,需要耗费精力。这样做需要真正的动力,诺贝尔奖得主 William Shockley 谈过 “the will to think”,这是他从物理学家费米那学到的一个终生难忘的短语。除非坚信某些事情值得努力去完成,否则很难有 “the will to think”。

    [Fermi] distilled the essence of a very significant insight: A competent thinker will be reluctant to commit himself to the effort that tedious and precise thinking demands – he will lack ‘the will to think’ – unless he has the conviction that something worthwhile will be done with the results of his efforts.

    有动力花费这么多精力,意味着不理解某些事情或者在思考中存在 bug 会让你很困扰,这个时候就会有 “the will to know”。与之相关的特质就是诚实。费曼曾说过做科学的第一条规则就是不要糊弄自己,因为自己是最好糊弄的那个人。

    (这就是为什么写作很重要。当你脑子里满是杂乱和困惑的时候,坐下来写东西就很难糊弄自己说自己已经弄懂了。写作能够强迫你把这些弄清楚。)

  3. 深入理解事情通常是和我们的物理直觉深刻联系在一起的。法拉第不相信他不能通过实验验证的东西。同时期的法国科学家(例如安培)能够在更高的抽象层面理解事情。相比之下法拉第部分因为数学不太好,因此主要通过实验来理解事情,但是法拉第的物理直觉使他获得了科学界的一些最重要的发现。即使不是真正地做实验,也能产生具体地案例地能力也非常重要。通过视觉化一些抽象的过程能让人理解更加深刻。
    另外一个聪明人的特质是不怕看起来很蠢。看起来蠢需要勇气,作者举例说有时候提出一些基本问题的时候,会有拖慢整个团队的负罪感,结果却是发现没有人知道这些问题的答案,而且有人私下说很高兴他问了这些问题。这是个比较容易掌握的习惯,会让你变得更聪明。

  4. 作者举例上学学习微积分的时候被不充分的证明激怒了,但是时间所迫只能学习下公式和运算方法,完成考试然后开始下一部分的学习。感叹学校是在杀死人们心中的“will to understanding” 。作者的建议是“慢下来”,慢慢地读、慢慢地思考,一周或者一个月后会非常惊讶已经走得有多远。

    如此你将会形成一个思想上的框架,阅读学到得知识可以挂在上面,会更有可能理解和记住这些知识。以比尔·盖茨得阅读周为例,他围绕一些重要问题例如水危机为大纲分解出很多碎片问题,例如“世界上有多少水?”、“现有的饮用水来自哪里?”、“如何把海水变成饮用水?”等等,然后才开始阅读去解决这些问题。

  5. 作者推荐了一本电子书:Sequences,特别推荐了 Noticing Confusion 这个章节。

  6. 两个故事

    • 关于阿加西让学生描述一条鱼的一个寓言
    • 《禅与摩托车维修艺术》中的一个学生想不出可表达的东西的故事,这里包含了这个故事

    两个故事说明的道理:没有什么比直接经验更重。即使不能直接经历,尝试找一些包含细节和事实的高信息密集的来源,然后从这些事实中进行推理。被誉为“最伟大的战地摄影师罗伯特·卡帕对新人摄影师的建议是:“如果你的照片拍的不够好,那是因为你靠的不够近”。(这对写小说也是一样)

    这对理解事情也是一样的好建议,当有疑问的时候,靠得更近一些。

Tip

属性动画中平移是相对于控件最初最初位置的一个距离。下面这篇文章讲解得比较好:

【Android】使用属性动画碰到的困惑及讲解

Share

ProGuard、D8 和 R8简介