ARTS 第4周

1. Algorithm

题目: 94. Binary Tree Inorder Traversal

Given a binary tree, return the inorder traversal of its nodes' values.

Example:

Input: [1,null,2,3]
1
\
2
/
3

Output: [1,3,2]
Follow up: Recursive solution is trivial, could you do it iteratively?

Solution1: 递归

时间复杂度: O(n), 空间复杂度O(n)

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        vals = []
        self.inorderTranversalHelper(root, vals)
        return vals

    def inorderTranversalHelper(self, root: TreeNode, vals):
        if root is None:
            return
        self.inorderTranversalHelper(root.left, vals)
        vals.append(root.val)
        self.inorderTranversalHelper(root.right, vals)

Solution2: 迭代

时间复杂度: O(n), 空间复杂度O(n)

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution:
    def inorderTraversal(self, root: TreeNode) -> List[int]:
        result, stack = [], [(root, False)]
        while stack:
            node, is_visited = stack.pop()
            if node is None:
                continue
            if is_visited:
                result.append(node.val)
            else:
                stack.append((node.right, False))
                stack.append((node, True))
                stack.append((node.left, False))
        return result

2. Review

Why I studied full-time for 8 months for a Google interview
Coding Interview University
Google可能是很多程序员心中的圣地,而这篇文章就讲述了作者是如何花费了8个月时间全身心为去Google面试做准备的,作者之前的经历其实已经很丰富了,有着丰富的开发经验,能力也很强,自己开过3个公司并且其中的2个正在盈利。作者选择去Google的背景我就不细说了,Google也是他心目中最想去的公司,所以作者制定了一系列的计划并且严格去执行,作者在GitHub上建了一个项目,帮助人们进行知识点的复习,把自己复习的各种资料以及自己的一些经验之谈都写在了里面,可以帮助别人更好地进行面试准备的复习。虽然最终作者没有进入Google,而是进了亚马逊,但我还是很佩服作者,佩服作者有勇气去挑战自己,并且一直坚定自己最初的目标,希望自己也可以像他一样,去挑战更大的目标,不要只是为了生存,屈服于各种压力之下。

3. Tip

Alfred
alfred_workflows
之前一直听说Alfred很好用,自己也下载下来用了一下,但是也只是粗浅的使用,感觉还不如Mac自带的Spotlight Search顺手,虽然一直都是开机启动的,但是自己从来没有用过它,自己也知道自己觉得它没用是因为自己没有去了解它的特性,但是自己也一直没有花时间去了解和学习。直到周末突然心血来潮想要去深入学习一下Alfred,当花了十几分钟看了一个视频,突然很后悔自己没有早点去学习Alfred的使用,因为学习成本并不高,但是回报却很丰厚,学完之后,我立马就买了Mega Support。

Alfred的搜索很好用,可以搜索文件,搜索网站,不用去打开专门的网站进行搜索,只需要在Alfred的搜索框中输入快捷字+要搜索的内容就可以了,例如: "images dog"就会在Google图片中搜索dog,"translate dog"就会在谷歌翻译中查看dog,"amazon 算法导论"就会再亚马逊搜索算法导论,自己也可以设置以一些自己常用的网站,比如淘宝京东之类的,当然还可以输入相关的快捷字来进行关机、重启、睡眠、清空废纸篓等等的操作,简直不要太方便了有没有。

当然Alfred最牛逼的功能是Workflows,可以自定义一些功能来扩展Alfred,你可以把自己常用的一些操作组合进行快捷键或者关键字绑定,从而极大地提升效率,比如我自己经常会同时打开某两个相关的目录,那么我就可以把这些操作进行绑定,使用快捷键或者关键字进行同时打开,网上有一些别人的workflow,我们可以使用,我们也可以自定义自己的workflow,从而让自己的电脑使用效率更高效。上面的第二个链接就是github上维护的一个workflows。

4. Share

上周分享了《逆商》的理论基础部分,这周就分享一下方法论部分吧,也就是如何提升我们的逆商。

书中提到了两个方法: 止念法和LEAD法。

  1. 止念法
    止念法又分为分心法和重塑法。分心法旨在帮助一个人立即打断自己的消极反应,防止我们无休止地把注意力停留在消极思维和感受上;重塑法是让一个人正确理解自己身处的逆境,从而停止灾难化。
    书中提到的基于分心法的策略:

    1. 通过一些练习,使得一些行为可以让我们立刻就能把思维停止,比如说用力拍手,或者大喊一声"停"等等,这些其实是一种锚定行为,就像巴普洛夫的狗一样,我们可以驯化我们自己,让我们在做出某种特定行为之后拥有某些特征的感受和结果;
    2. 通过关注一个不相关的事物来达到把自己从消极思维中解救出来的目的,从而让我们停止把一些消极的事情灾难化;
    3. 在手腕处绑一个橡皮筋,通过橡皮筋弹手腕打断消极思维模式,把负面思想赶走;
    4. 通过一些积极的干扰,可以让自己不去关注眼前的逆境,比如说听音乐、看喜剧以及搞笑的电影等等;
    5. 通过运动来改变自己的心态。

    书中提到的基于重塑法的策略:

    1. 问自己一些问题,比如说自己的目标什么,什么对自己来说是最重要的等等,从而把自己从各种细枝末节中解脱出来,回归到真正有意义的事情上去;
    2. 渺小化,可以让自己置身于某个环境中,让周围的事物把自己衬托得很渺小,通过换个环境来打断自己的消极反应,去找那些可以让自己更加平静或者开心的环境;
    3. 帮助他人,帮助那些遭遇更大挫折的人们,你会发现自己是多么的幸运,自己碰到的挫折和问题是多么的微不足道。
  2. LEAD法
    LEAD工具基于这样的观点: 我们可以通过改变思维习惯来改变成功率。这种改变是通过质疑以前的模式并有意识地构建新的模式来实现的。
    L=Listen,倾听自己的逆境反应,也就是观察和反思自己的反应,去思考自己应对逆境的反应是高逆商反应还是低逆商反应,在哪个维度得分最低或最高。
    E=Explore,探究自己对结果的担当,去思考自己应该对结果的哪些部分承担起责任,不应该对哪些部分担责。
    A=Analyze,分析证据,分析有哪些证据表明自己无法掌控,有哪些证据表明这次的困境会蔓延到生活的其他方面,有哪些证据表明这次逆境会持续很长时间。
    D=Do,行动,去做一些事情来获得对形势的一点掌控感,去做一些事情来限制困境的影响范围,去做一些事情来限制逆境的持续时间。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容

  • Alfred 就是 Mac 上最强大的工具台,一个图形化的终端,只有你想不到,没有它做不到。 Alfred的使用 ...
    吃蘑菇De大灰狼阅读 86,838评论 11 79
  • 前言 Alfred,想必大家就算没用过也耳闻过。Alfred是一个让你可以丢掉鼠标的神器。很多读者可能之前认为Al...
    daking阅读 315,940评论 196 940
  • 前言 Alfred最近才听朋友说过(相见恨晚),用了下感觉还不错。Alfred能让你的MAC进入一个高效的世界!A...
    成绩是汗阅读 1,771评论 0 0
  • 今天一天很忙,脚步几乎就没有停过,因为要付出才会有收获,所以忙碌是快乐的,我们也就是在这样的忙碌中寻找机会,再改进...
    饮雨秋寒阅读 208评论 0 0
  • Objective 你对今天学的记得什么? 人世间,除了生死都是小事。 Reflective 一句话形容今天的情绪...
    露易司阅读 153评论 0 0