小米java开发一面凉经

面试半小时,前面自我介绍都略过了,就问了句我技术栈是不是java,我说是,然后一道题都没问题(我猜测面试官的技术栈应该不是java)
然后说时间比较紧,直接给你一道题你先做一下吧。

注:相邻节点指的是父子节点
然后半小时死磕上面,还没做出来,再没有然后了,面试结束!
大家有这道题的解题思路嘛,可以分享一下!略郁闷,第一次碰到这种情况!
#小米##面试题目##校招##Java工程师#
全部评论
    public int process(TreeNode root){         int[] res = getRes(root);         //res[0]即不包含根节点的最大值,res[1]包含根节点的最大值;         return Math.max(res[0],res[1]);     }     private int[] getRes(TreeNode root) {         int[] res = new int[2];         if (root==null){             return res;         }         int[] left = getRes(root.left);         int[] right = getRes(root.right);         res[0] = Math.max(left[0],left[1])+Math.max(right[0],right[1]);         res[1] = left[0]+right[0]+root.val;         return res;     }
点赞 回复 分享
发布于 2019-09-10 20:06
这我一看就知道要用动态规划(不得不说动态规划真的考的比其他题型都多,很重要)。一开始三种情况,最后取这三种情况的最大值:1、从根节点开始往下递归;2、从根的左儿子往下递归;3、从根的右儿子往下递归。每一层即一个递归,每个节点的儿子的儿子一共四种情况,递归下去取最大值并存起来,如果没存则递归,存了则直接用。一直递归到底即可。
1 回复 分享
发布于 2019-09-10 21:12
你做的时候有和面试官交流还是自己搞自己的
点赞 回复 分享
发布于 2019-09-10 21:26
leetcod原题,哎我也是小米也是白给了,出的题也没做出来。
点赞 回复 分享
发布于 2019-09-10 20:21
这样 很难受啊 
点赞 回复 分享
发布于 2019-09-10 19:03
确实是Leetcode原题
点赞 回复 分享
发布于 2019-09-10 18:41
树形DP
点赞 回复 分享
发布于 2019-09-10 18:35
还是想说今天下午的面试好难,楼主这道题不考虑树也是leetcode上的medium题了。。。
点赞 回复 分享
发布于 2019-09-10 18:29
dp,每个节点取或不取,可以看看leetcode上的打家劫舍
点赞 回复 分享
发布于 2019-09-10 18:26
树形dp就两个状态
点赞 回复 分享
发布于 2019-09-10 18:25
leetcode 337
点赞 回复 分享
发布于 2019-09-10 16:56
太恐怖了吧
点赞 回复 分享
发布于 2019-09-10 16:52
我带项目带手撕总共面了20分钟。。透心凉。。
点赞 回复 分享
发布于 2019-09-10 16:46
leetcode有个小偷的题和这个差不多 不过这个是在树上 思路是dp
点赞 回复 分享
发布于 2019-09-10 16:42
这是01背包的变体?
点赞 回复 分享
发布于 2019-09-10 16:35

相关推荐

01-19 15:14
已编辑
延安大学 C++
点赞 评论 收藏
分享
评论
1
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务