刷leetcode对去北美找工作面试真的帮助很大吗
发布网友
发布时间:2022-04-10 11:18
我来回答
共2个回答
懂视网
时间:2022-04-10 15:39
boolean isBalanced(TreeNode root) {
int res = helper(root);
if (res<0) return false;
return true;
}
public int helper(TreeNode root)
{
if (root==null) return 0;
//从底下开始判断是否平衡树
//两个变量如果是-1就代表是不平衡
int ld = helper(root.left);
int rd = helper(root.right);
//三种情况就不平衡:左右子树不平衡,本节点不平衡
if (ld==-1||rd==-1||Math.abs(ld-rd)>1)
return -1;
else if (ld>rd) return ld+1;
else return rd+1;
}
[leetcode]110BalancedBinaryTree平衡二叉树
标签:class 判断 return 开始 bsp color 平衡二叉树 pos ==
热心网友
时间:2022-04-10 12:47
我觉得题主提问是求面经,而且是问我们寻常人该怎么准备面试,也不是来看几位大牛吹水的。我就分享下自己找工作时候的一些准备过程。
认真看了一本算法书,整理了一下自己的算法体系,像算法导论,或者Algorithm Design by Jon Kleinberg 也挺不错的。花一周认真看看,如果你连几个search,tree都不熟的话还是多花点时间。。好处是你给自己建立了一个自洽的算法脉络,以后看面试题,或者处理其他一些现实问题,你都会不由自主的去把问题抽象化,然后归类,我自觉这种思考方式使我受益良多。
看一下Cracking the code interview.这本书大家应该都说烂了,但这本书长盛不衰必然也是有理由的。它的题量不多,书里废话也挺多。但它的好处是,它做了一个整理面试题然后归类的过程,而且基本把你可能遇到的所有面试题类型都覆盖了。
然后开始刷leetcode吧,从简到难,认真刷一遍。建议不要用任何ide,打开没有error check的text editor(emacs,vim, notepad++ etc)
最好在有几个可以吹水的领域。因为面试不是一个单纯做题的过程,对于我们平凡人而言,既然不能一直秒杀面试官,那就想得正常点,和面试官交个朋友。而做技术的,大多数都乐意结交那些知道一些自己所不懂领域的人。我记得我面的时候,还给人划过Android整个system stack,从dalvik画到kernel,还有人跟我聊在microkernel system design之类的。
保持一个积极的心态。我知道知乎有很些大神谈面经就是“我从来没被拒过“,但你要相信,这世界上还是平凡人居多的。我的朋友,包括我自己,在面试中都是一个越挫越勇的过程。像我一个朋友,他被google,*,apple,microsoft都拒过,但最后去了*,还有一个朋友被google,square拒过,最后拒了amazon去了一家startup,现在已经被某大公司收购,走上高富帅之路。我被*,amazon拒过,google intern拒过一次,但microsoft就走的很顺,后来google很奇葩的把我面试时间schele错了,我过了第一轮,签了MS就不再面了。所以无论遇到什么困难,都要保持乐观,你不是一个人,平凡人也有很多,要相信自己。