华为od社招一面凉经

毕业于985院校,工作9年,1年半 c++,5年移动运营商java,2年海口某500强企业java,想去深圳发展。
一面已挂,面试体验非常差。
6.2 开始说要去深圳,后来说在家视频面试也可以,然后饭也没吃在家等着面试,一直等到10点半,结果第二天才知道我自己理解错了。



6.6号带小孩去棋子湾度假,说是下午面试。然后在酒店一直从下午2点做到6点钟,错过了跟孩子玩水上乐园的机会,8点才去吃饭,被告知,hr弄错了,机考成绩没出来,下周一才能开始面试。
6.8 号通知资格面试,然后又白等了一个晚上,很晚才去吃饭。
6.10 资格面
6.13 约好14:30面试,我提前半个小时在zoom上,然后面试官 14:50才到。
先是做自我介绍 ,介绍近期自己做的项目,然后问项目的访问量,因为是内部项目,访问量确实不是很大。
然后问了自己遇到的问题,我就说了因为数据库没有建立索引导致线上cpu 100%的问题,
然后问在应用上要到的难题,我就介绍了自己项目因为事务处理不当导致的偶然性报错的问题。
然后问了cpu100%的处理方式,我一下子蒙了,然后说了cpu100%的一些可能,死循环,网络等原因。
然后就说top命令查看,定位到具体的进程,然后想说jmap,又不确定内存问题会不会导致cpu升高,把jstack命令忘记了。
然后问了虚拟机的内部组成,还有什么时候触发 GC ,刚刚看了深入理解java虚拟机(周志明版),所以都能答的上来。
又问了线程的几种状态。问了微服务都有哪些部分组成,因为最近做项目刚刚接触微服务,所以组成都能答上来,
但是问注册中心的原理没有回答上来。然后就让做一道算法题,这个是我最生气的。
题目很简单 就是m*n的矩形从左上面到右下面的路径有多少条加上面试官讲题目一共用了不到10分钟,
没有debug,面试官说不用debug了,然后他在那边截图下就可以了。
6.15号hr跟我说挂了,然后先是问我算法题是不是没做,然后又说我做错了。
非常糟糕的面试体验哈。最近又要去忙项目了,吐糟下自己非常珍惜的一次面试机会。

import java.util.Arrays;
import java.util.Scanner;
import java.util.TreeSet;
public class hwjk {
    static  int count = 0;
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int m=sc.nextInt();
            int n=sc.nextInt();
            count=0;
            backTrack(0,0,m-1,n-1);
            System.out.println(count);
        }
        sc.close();
    }
    public  static  void backTrack(int i,int j,int m,int n)
    {
        if(i==m && j==n)
        {
            count++;
        }
        else
        {
            if(i<m)
            {
                backTrack(i+1,j,m,n);
            }
            if(j<n)
            {
                backTrack(i,j+1,m,n);
            }
        }
        return;
    }
}


#华为od##华为##社招##Java工程师##面经#
全部评论
最后一道算法题应该用dp...
3 回复 分享
发布于 2020-06-15 23:05
private static void getByDp(int[][] result, int m, int n) {         //每一行的第一个都只有一种走法         for (int i = 0; i < m; i++) {             result[i][0] = 1;         }         //每一列第一个也只有一个解法         for (int j = 0; j < n; j++) {             result[0][j] = 1;         }         //计算mn按照公式         for (int i = 1; i < m; i++) {             for (int j = 1; j < n; j++) {                 result[i][j]  = result[i-1][j] + result[i][j-1];             }         }     }
2 回复 分享
发布于 2021-04-12 11:10
9年啊!老哥nb
1 回复 分享
发布于 2020-06-17 11:22
递归也是可以的,只是不要用回溯。回溯的时间复杂度太高。 public static int dfs(int m, int n){     if(n == 0 || m == 0){     return 1; } return dfs(n-1, m) + dfs(n, m-1); } 根据这个递归又可以用相应的动态规划
点赞 回复 分享
发布于 2020-09-21 05:43
9年工作经验是不是要的工资太高了?
点赞 回复 分享
发布于 2020-06-18 21:42

相关推荐

最近经常遇到粉丝私信,或者是1v1答疑的时候。都在问嵌入式学习方向的问题,不知道要走哪个方向?到底要不要学数模电?等等。之前在笔记--嵌入式软件学习路线(完整版),已经分享过了,没想到还是有粉丝朋友不是很清楚,因此本期再说详细一点。首先是方向问题:总体来讲,我个人认为嵌入式就两大方向,一个mcu+rtos,一个是linux。不要再说什么电机控制方向,wifi、蓝牙物联网方向等等,这些都是行业专精方向。什么叫做行业专精方向,就是你把基础学好以后,再根据不同的行业,学对应的行业知识。那基础是什么?基础就是mcu、rtos、linux都属于基础,至少我自己是这么理解的。因此,如果你是校招或者是刚入行的社招同志,把基础学好就足够找一份工作了。剩下的行业专精知识,去公司再学也不迟。理解清楚这一点后,再来看具体选择哪个方向。还是那句话,如果你时间比较多(什么叫做时间多,我个人认为要么大二开始,要么研一开始),我个人建议你mcu和linux都学,这样选择的机会更多一点。如果你时间不够,那你就二者选其一。如果你选mcu方向,行业内通常叫软硬件方向,就是硬件和软件你都要会的意思。那么这个方向多多少少会接触到硬件的,因此我建议你要有一定硬件基础。如果你以后想深耕该方向,那硬件就不止是要会基础知识了。综上:选择这个方向,我个人认为是一定要学模电和数电的。那在此处,也还是有粉丝朋友问我,模电和数电要全部学完吗?之前笔记就分享过,前期刚开始你不用全部学完,但模电的二极管、三极管、mos管、比较器、放大器这种基础你要会吧,电子元器件总要认得全吧,电容电感的作用总要了解吧。核心一句话,最低要求--看懂原理图!对于数电,最基础的进制转换要会吧,比如10的16进制你要知道是0xA等等。触发器、寄存器总要了解一下是什么吧,AD转换总要了解一下吧,有哪些存储器如ram和rom要了解吧。这个地方又有粉丝有问题了,需要一上来就学模数电吗?怎么学?学不进去咋办?对于这类问题,我个人建议是如果你觉得枯燥,那是因为你还没用到这个知识。因此,你可以先去学习stm32的点灯,那点灯的时候到底是输出一个低电平还是一个高电平呢?如果你搞不清楚,说明你不知道二极管的单向导电性,那你就回过头去看相关知识,书籍或者视频都可以(书籍和视频我学习路线完整版那篇笔记有说过,这里不再多加说明)。以这种先发现问题,再解决问题的方式去学习,就不会学不下去了,同时也会学的更加深刻,毕竟学习最怕的就是学了不用。此外,第二个建议是你可以直接去b站搜怎么看懂电路原理图,当你去听别人分析的时候,你不懂这是为啥?那是为啥?这个时候,你就知道自己应该去看书了,这样的学习方式也可以。那么上述关于mcu方向以及模数电该不该学?怎么学的问题就讲完了。多补充一点的是,如果已经在mcu方向拿完offer的校招同学,我个人建议你继续往linux方向学。原因是,等你进了公司,你会发现面试的时候,面的是mcu方向的,进来以后给你分到linux方向了。这只是有可能,也是一些特例。比如我自己就是这样,面的mcu,现在去在linux平台上干SoC。下边继续说一下第二个方向--Linux。linux方向相较而言,基本不碰硬件。比如博主现在硬件都没碰过,跑板子都是远程连接跑的,更别说原理图了。因此,如果你不想碰硬件,又想吃嵌入式这口饭,那建议往linux方向学习。在linux方向里边,驱动和应用都要学,并且个人建议先从应用方向学起。具体来说,个人建议按照以下顺序:学习c++--&amp;gt;学习linux环境基本操作--&amp;gt;学习gcc/make工具链--&amp;gt;学习linux应用(I/O、线程进程、网络编程、QT等)--&amp;gt;linux驱动(uboot/kernel/rootfs/gdb调试/三大设备驱动等),更加具体的学习路线以后再发,本期讲不完。本次讲解就到这里,有需要Linux驱动、Linux应用开发指南、Freertos开发手册、STM32开发指南、开源rtos项目、嵌入式软件八股文合集等资料的同学,可私信我领取&nbsp;&nbsp;&nbsp;&nbsp;。
点赞 评论 收藏
分享
评论
12
21
分享

创作者周榜

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