ARTS
Algorithm:每周至少做一个leetcode的算法题;
Review:阅读并点评至少一篇英文技术文章;
Tip/Tech:学习至少一个技术技巧;
Share:分享一篇有观点和思考的技术文章;
Algorithm
226. 翻转二叉树
https://leetcode-cn.com/problems/invert-binary-tree/
本周琐事比较多,所以就做了一些简单的关于二叉树的题目,这道题据说很经典?我看到题目下面有段话让我觉得乐了,就是下面这段:
谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。
然后觉得试试,第一次的时候只把值进行了交换,导致出现了错误,后来想了想,其实就是因为没有把左右节点进行交换导致的错误,要注意:
翻转要把节点对应的左右节点都要进行交换。
OK,show the code:
class Solution {
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public TreeNode invertTree(TreeNode root) {
if (root == null) {
return root;
}
invertOpt(root);
return root;
}
public void invertOpt (TreeNode node) {
if (node.right != null && node.left != null) {
TreeNode temp = node.left;
node.left = node.right;
node.right = temp;
} else if (node.right != null && node.left == null) {
node.left = node.right;
node.right = null;
} else if (node.right == null && node.left != null) {
node.right = node.left;
node.left = null;
} else {
return;
}
if (node.left != null) {
invertOpt(node.left);
}
if (node.right != null) {
invertOpt(node.right);
}
}
}
以上就是代码,非常的简单的递归吧,我发现二叉树这些题目是锻炼递归思维非常好的题目,各种的递归翻转,只要熟练,基本上就会对递归有更加熟练地理解了。
Review
https://www.jcp.org/en/jsr/detail?id=133
JSR 133: JavaTM Memory Model and Thread Specification Revision
这是篇关于Java的内存模型的一个JSR,大意就是说原来的那个些个语言规范啊,虚拟机规范啊,规定的不好,这个JSR就是在之前的基础上进行修订,主要增强了Java的多线程和一些内存类型的功能。描述都是其次。后来的那写个论文啊,才是大部头,看到我直接晕了。大概理解了一下,有关于一些内存的模型的论文。
Tip/Tech
手写了二叉树的查询,插入,删除。很惭愧,还不算熟练。
Share
http://blog.samaltman.com/how-to-be-successful
How To Be Successful
- Compound yourself:就是你要做个有复合增长的工作,然而大部分的工作都是线性的
- Have almost too much self-belief:要对自己有足够的自信
- Learn to think independently:独立思考
- Get good at “sales”:擅长销售,你学会如何打动别人
- Make it easy to take risks:善于承担风险,其实很多风险本身是不那么可怕的,而奖励往往丰厚
- Focus:专注正确的事情,更多人吧时间专注再无关紧要的事情上面
- Work hard:努力工作
- Be bold:要大胆,所谓撑死胆大的,饿死胆小的
- Be willful:要任性?就是要变得有那种感觉,你可以按照自己的方式来改变世界
- Be hard to compete with:有竞争力。这个说的容易
- Build a network:建立你你自己社交网络,就像团队啊,人脉啊这些
- You get rich by owning things:你通过拥有东西来致富
- Be internally driven:内部驱动,一切发自内心的。就是你自己很愿意相信这东西能成这种感觉。