富途实习面试(客户端开发)

富途是近期实习面试中,面试体验最好的了!而且也顺利拿到了offer,IOS客户端开发。但是由于疫情原因,无法实习,已拒。
一共三面:
技术一面:
(面试官主要用C++面试,但是底层原理相差不大)
主要考了内存变量、内存区域、数组和链表等数据结构

在这里插入图片描述

在这里插入图片描述
以下多线程对int型变量x的操作,哪几个不需要进行同步( )
A. x=y; B. x++; C. ++x; D. x = 1;

一个整型数组,找出其中两个数之和是一个给定值的所有组合。(编程题)
在这里插入图片描述
技术二面:
主要问了关于JAVA语句的使用,这次面试就比较深入,有些问题一时没有想起来,面试官也会对思路进行引导。
考察比较多的是计算机基础知识,这部分的知识很薄弱。
面试官问到 单波、双波、广波没有答出来;
还有一个印象比较深的题是:Java1.8之后的HashMap为什么是n>8之后?
看了源码也没有给出明确的解释,这是源码中的解释:
理想情况下,在随机哈希码下,哈希表中节点的频率遵循泊松分布,而根据统计,忽略方差,列表长度为K的期望出现的次数是以上的结果,可以看到其实在为8的时候概率就已经很小了,再往后调整并没有很大意义。

我自己的理解:
红黑树的平均查找长度是log(n),如果长度为8,平均查找长度为log(8)=3,链表的平均查找长度为n/2,当长度为8时,平均查找长度为8/2=4,这才有转换成树的必要;链表长度如果是小于等于6,6/2=3,而log(6)=2.6,虽然速度也很快的,但是转化为树结构和生成树的时间并不会太短。

手撕算法:
二叉树的最大路径和

该题的题意比较难以理解,很容易跑题而导致解答错误。
该题说明的是,能够找到1个节点到另外一个节点的最大路径和,因此思路如下
定义一个递归方法,该方法的功能是:得到当前树的最大的路径和,而计算当前的最大路径和是通过递归计算左右子树的最大路径好得到的。最终当前树的最大路径和为Math.max(current.val, Math.max(左子树最大路径和,右子树最大路径和));
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {private int max = Integer.MIN_VALUE;public int maxPathSum(TreeNode root) {//通过后序遍历的方式,先计算出左右子树的最大路径和,然后再计算当前树的最大路径和maxSum(root);return max;}private int maxSum(TreeNode root) {//通过后序遍历的方式,先计算出左右子树的最大路径和,然后再计算当前树的最大路径和if(null == root) {return 0;}int leftMax = Math.max(maxSum(root.left), 0);int rightMax = Math.max(maxSum(root.right), 0);max = Math.max(max, leftMax + rightMax + root.val);return root.val + Math.max(leftMax, rightMax);}
}

HR面:
HR面给人的感觉也是,很舒服,主要是问一下简单得情况和对性格仿麦呢进行了解。过!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部