Coding Bro

代码笔记哥的博客

看看不同类型的二叉树的中美差异

Different Types of Binary Trees

在面试中,我们会遇到不同类型的二叉树。碰巧,美国英文语境下的一些二叉树类型与中国中文语境下的对应翻译有匹配不当之处(mismatch)。本文试图做一个归纳整理,方便身处两个国家的小伙伴们在面试遇到二叉树类算法题的时候,不至于因为语境下的定义不同而吃亏。 根据笔记哥亲身经历,本文先描述美国语境下的一些二叉树类型的定义,再描述中国语境下的,最后再做一个小结。 注:由于下面提到的二叉树类型不包...

LeetCode 104. Maximum Depth of Binary Tree

LeetCode 104. 二叉树的最大深度

回顾 解题“七步走” (保持这种sense): 题意 Scenario 假设 Assumptions 举例与输入输出 Examples and figure out Input/Output 思路(什么数据结构, 什么算法)Thinking Process (What data structure, algorithm?) 代码 Coding 复杂度分析 Compl...

LeetCode 145. Binary Tree Postorder Traversal

LeetCode 145. 二叉树的后序遍历

回顾 上一期我们做的“LeetCode 144. 二叉树的前序遍历”的解法一,有网友问道为什么我们可以把存结果的整数列表res放到辅助的traverse()递归函数中,逐步将每一步的结果填充入其中呢? 其实,笔记哥上一次分享的文章《10张 GIF 动图让你弄懂递归等概念》中的“GIF 7:按值传递和按引用传递的区别”解释了这个问题。 在Java语言中,int,float,char,doubl...

LeetCode 144. Binary Tree Preorder Traversal

LeetCode 144. 二叉树的前序遍历

首先回顾一下“七步走”。并不是解答每一道题都会用到如下七步,但只要您平常解题时养成好习惯,之后在面试中必游刃有余。 题意 Scenario 假设 Assumptions 举例与输入输出 Examples and figure out Input/Output 思路(什么数据结构, 什么算法)Thought Process (What data structure, wha...

Install Node.js via NVM

通过nvm安装Node.js

Install nvm first NVM stands for Node Version Management. Before you install node.js, you can install nvm first. $ curl https://github.com/creationix/nvm (Optional) For oh-my-zsh user For oh-my-z...

《轻松学会独立思考》笔记02

从成为乒乓高手的过程看如何训练优秀的独立思考能力

本文是读张志、黄鑫、胡晓所著的《轻松学会独立思考》的第02篇笔记。 乒乓训练过程 想要得到缜密理性的独立批判性思考能力,要靠练! 以国人所熟知的乒乓球为例,在教练指导下,训练过程大致如下: 拿着拍子颠球,训练球感 上台,训练最简单的动作,反复纠正,直到动作定型成为本能反应 教练继续教下一个动作 在掌握足够的基础动作后,教练开始教步法,让球员把基本动作结合起来完成一个...

《轻松学会独立思考》笔记01

SWOT分析法与温水煮青蛙实验的真伪

本文是读张志、黄鑫、胡晓所著的《轻松学会独立思考》的第01篇笔记。 SWOT分析法与结构化应对法 有些人脑子里是有在思考,但怎么都思考不出个结果来,总是首鼠两端,这是怎么回事呢? 作者在书中举例,大四的毕业生,面临考研和工作这两种选择。而在做这两种选择之一的过程中,大四是参加实习还是全心复习考研就成为了一个决策上的坎。总是在“空转性”思考的人,虽然知道参加实习还是全心复习各有对其自身的优...