JAVA面经分享---华为OD

BG:双非普通一本科软件工程专业,24届毕业;gap半年。

一、机考:

11.21号;大概从10月开始准备,刷力扣hot100和e卷原题;机考运气比较好抽中了一道原题;机考三道题目分别是:队列,贪心,bfs;最后360分通过。

二、性格测试:

hr姐姐给了攻略,注意不要前后矛盾就可以,按照攻略来就没问题。

三、资面:

打电话简单问了一下;首先是自我介绍,然后问了一下gap的原因,期望薪资,全程只有十分钟左右;

四、技术面:

一面:

面试有两个部分,手撕代码和八股(也有一些项目问题)。

八股部分:

1. java的模式有哪些;

2. Arraylist和linkedlist的区别;

3. 单例模式的创建;

手撕代码:

合并有序链表;

整个流程大概不到20分钟,没有问项目问题。

二面:

手撕代码:

dfs 遍历二叉树寻找节点值的和等于目标值的路径;

八股部分:

1. 索引失效的情况;

2. Redis的使用场景;

3. Jvm的作用;

4. 垃圾回收器,垃圾回收算法;

5. Jvm调优;

整个流程也是20分钟左右。

三面:

八股部分:

1. springboot的作用和优缺点;

2. Mybatis的作用和优缺点;

3. 抽象类和子类;

4. Arraylist和linkedlist的区别;

5. 懒汉式饿汉式的区别和优缺点;

6. 怎么实现层序遍历;

手撕代码:

返回字符串s第二大数字;我的思路就是遍历然后哈希去重最后排序;

整个流程不到20分钟;

五、主管面试:

压力面;先问gap的原因,为什么来od,自己有什么优势,怎么体现等等。之后又问了很多项目的细节,问一下如果出现了什么什么问题然后要怎么解决,也会指出一些项目设计的缺陷然后问怎么解决;总共问了大概二十多分钟;

出乎意料的是主管面完几分钟就收到hr消息说通过;然后就是给薪资方案然后等offer;特别感谢整个流程hr姐姐都非常积极在跟进,有进度都会及时通知我,然后等了大概一周就拿到offer了。定级D2,2025.1.7日已入职上海-2012部门。

#OD面经##ODoffer##华为社招##Java面经#

全部评论
羡慕,我还在等资面被鸽了一天
点赞 回复 分享
发布于 昨天 20:27 浙江

相关推荐

昨天 16:09
阜阳师范大学 C++
点赞 评论 收藏
分享
昨天 15:35
提示:牛顿法using System;class Program{    // 定义方程 f(x)    static double Equation(double x)    {        double expTerm = Math.Exp(-x);          // 计算 e^(-x)        double cosTerm = Math.Cos(x);           // 计算 cos(x)        double sinTerm = Math.Sin(x);           // 计算 sin(x)                double part1 = 2 * expTerm * cosTerm;   // 2 * e^(-x) * cos(x)        double part2 = sinTerm * sinTerm;       // sin^2(x)        double part3 = Math.Log(x + 1);         // ln(x + 1)        double part4 = 3 / (x * x + 1);         // 3 / (x^2 + 1)                return part1 + part2 + part3 - part4;  // 返回整个方程值    }    // 使用牛顿法(Newton-Raphson Method)来求解方程的零点    static double SolveEquation(double initialGuess, double tolerance = 1e-6, int maxIterations = 1000)    {        double x = initialGuess;        double fx = Equation(x);        double fxDerivative = Derivative(x);        // 在开始之前,检查初始点是否已经是解        if (Math.Abs(fx)         {            return x;        }        int iteration = 0;        while (iteration         {            // 防止导数为零            if (Math.Abs(fxDerivative)             {                Console.WriteLine("导数接近零,牛顿法迭代失败!");                break;            }            // 计算下一次迭代的值            double newX = x - fx / fxDerivative;            // 如果函数值已经接近零或变化值小于容差,则提前退出            if (Math.Abs(fx)             {                return newX;            }            // 更新变量            x = newX;            fx = Equation(x);                // 更新方程值            fxDerivative = Derivative(x);    // 更新导数            iteration++;        }        return x;    }    // 计算方程 f(x) 的导数,使用中心差分法    static double Derivative(double x)    {        const double h = 1e-6; // 微小增量        double fxPlusH = Equation(x + h);        double fxMinusH = Equation(x - h);                return (fxPlusH - fxMinusH) / (2 * h);  // 中心差分法计算导数    }    static void Main()    {        // 给定初始猜测值        double initialGuess = 1.0;        // 使用牛顿法求解方程的数值解        double root = SolveEquation(initialGuess);        Console.WriteLine($"方程的近似解是: x = {root}");        // 输出该解的方程值        double equationValue = Equation(root);        Console.WriteLine($"在 x = {root} 处,方程值为: f(x) = {equationValue}");    }}
点赞 评论 收藏
分享
评论
1
5
分享
牛客网
牛客企业服务