项目
说了下本科参加的大挑、还有研究生期间的电子设计竞赛,自己负责的部分。还有一个自己做的miniftp的项目,面试官不感兴趣没问。
语言基础 计算机网络 操作系统
没问
手撕代码
我是今年四月份投的实习,做的机试。
上来就复盘机试,当时做了两个题。
让写了个最难的(抄书问题),没写出来。。。
面试官人很nice,看我写不出来给换了个题:
力扣 997 找到小镇的法官
当时的办法比较蠢,看了下力扣的高票解答。遍历trust,统计对应点的出度和入度(出度–,入度++)。最后在遍历一次计数的数组,值为N-1的下标就是法官。
代码如下:
class Solution {
public:
int findJudge(int N, vector<vector<int>>& trust) {
vector<int> cnt(N+1,0);
for(auto it : trust){
--cnt[it[0]];
++cnt[it[1]];
}
for(int i = 1; i <= N;++i)
if(cnt[i] == N-1){
return i;
}
return -1;
}
};
结语
PS:华为很看重代码能力,手撕出来的话,两轮技术面大概就稳了。
建议:代码能力不强的同学,不要投开发岗!!!
菜是原罪,就这样吧,看来我只配去友商。
菊厂say goodbye
以为完蛋了,结果一面给过了
自我介绍
自己的学校,专业,学历,在校期间拿到的奖励,自己的技术栈。
操作系统 计算机网络 C++ 基础
没问
项目
问了我自己做的miniftp是商用,还是自己做着玩的?答自己练手做的项目。介绍了里面的功能和项目实现的细节,面试官似乎不是太感兴趣,把关键的技术讲了下。
本科学过啥课?
基本的数据结构有哪些?
跟老师做些什么项目?
比赛的项目里面具体是负责些什么?
手撕代码
一面手撕代码就是算法,二面的话考察的是基本的编码能力。
题目:一个排序数组中存在重复的元素,将重复的元素去掉,返回去重后的数组的长度。时间复杂度O(N),空间复杂度O(1)。
居然问了面试官能不能用unique方法,面试官说要自己实现。
贴一下我的代码(考察的就是双指针):
#include
using namespace std;
int main(){
vector<int> nums = {
0,0,1,1,1,2,2,3,3,4};
//vector nums = {1,1,2};
int i = 0,j=0;
int index=0;
for (; i< nums.size() && j < nums.size();) {
j = i+1;
while(nums[j] == nums[i]){
++j;
}
nums[index++] = nums[j-1];
i = j;
}
cout<<index<<endl;
for(auto n : nums){
cout<<n<<" ";
}
cout<<endl;
}
PS:感觉华为的一面是压力面,一定要顶住。二面的话就是唠唠嗑,考察一下基本的编码能力。许愿主管面吧!!!
两轮技术面没有考察编程语言基础、计算机网络、操作系统感觉还是很诡异的。
我真的真的很想去华为啊,Fight,Fight,Fight…
面试时候有那么一丢丢的兴奋,毕竟是很想去的公司。
前奏:
面试官:同学你那边天怎么这么黑,已经晚上了吗?给主管解释了下,宿舍在一楼光线不好,把台灯打开给脸上补了一点光。
自我介绍:
姓名,专业,学校,自己的技术栈,在校期间获奖经历(说完了?你这自我介绍有点苍白)我挑重要的说的,
问题:
反问: