目录
本人背景:
准备:
投递简历的教训:
腾讯微保
招商银行IT开发
华为软开
笔试
技术面试
主管面试
阿里C++开发
结语
末流211大三菜鸡,EE出身,一年前才开始准备转CS,之前一直在搞硬件,比科班出身的落后不少
好在学校里CS氛围浓厚,很多非CS专业的学长学姐毕业都进了大厂
牛客上很多两个月转行拿BAT的offer的帖子,给人一种大厂很好进的感觉,其实这条路的坎坷只有自己知道
1月有学长在群里发华为日常实习的消息,我定了一月底的票准备去实习
后来疫情,现在四月底了还在家gg
华为离我学校很近,所以是我的首选目标
计算机网络:https://xduwq.blog.csdn.net/article/details/104531278
操作系统:没有系统学习,牛客上有很多面经,速成的,导致后来面试好多OS问题我都翻车了
算法和数据结构:LeetCode必刷,面试好多题都是原题https://xduwq.blog.csdn.net/article/details/105469815
数据库:《MySQL必知必会》+牛客面经
可能我投的岗位HC很少,笔试全AC现在还没消息……
附笔试题:
1. 最长不重复子串
class Solution {
public int lengthOfLongestSubstring(String s) {
int res = 0;
Set set = new HashSet<>();
for(int l = 0, r = 0; r < s.length(); r++) {
char c = s.charAt(r);
while(set.contains(c)) {
set.remove(s.charAt(l++));
}
set.add(c);
res = Math.max(res, r - l + 1);
}
return res;
}
}
2. 约瑟夫环
class Solution {
public int lastRemaining(int n, int m) {
int ans = 0;
// 最后一轮剩下2个人,所以从2开始反推
for (int i = 2; i <= n; i++) {
ans = (ans + m) % i;
}
return ans;
}
}
3. 填空题一道二分查找
笔试不简单,大概AC一半不到
面试的时候问读研还是工作,我竟然傻傻地说没想好看情况,然后挂
所以一定要坚定地说工作!
附面试题:
笔试满分600,做了520
1. 大数幂
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (true){
int n = sc.nextInt();
int l = sc.nextInt();
if(n == 0 && l == 0) break;
long res = 0;
for (int i = 1; i <= l; i++) {
res += quickMi(n, i);
}
System.out.println(res % 1000000007);
}
sc.close();
}
private static long quickMi(long aa, long bb){
long res = 1;
long a = aa, b = bb;
a %= 1000000007;
for (; b != 0; b /=2) {
if(b % 2 == 1){
res = (res * a) % 1000000007;
}
a = (a * a) % 1000000007;
}
return res;
}
2. 二进制贪心
#include
#include
using namespace std;
typedef long long int ll;
int main(){
int T;
ll n;
string s;
cin>>T;
for(int i=0;i>n>>s;
for(int j=0;j
3. 回溯DFS数独
#include
#include
using namespace std;
bool sign = false;
int num[10][10];
bool Check(int n, int key);
int DFS(int n);
bool Check(int n, int key)
{
for (int i = 0; i < 9; i++){
int j = n / 9;
if (num[j][i] == key) return false;
}
for (int i = 0; i < 9; i++){
int j = n % 9;
if (num[i][j] == key) return false;
}
int x = n / 9 / 3 * 3;
int y = n % 9 / 3 * 3;
for (int i = x; i < x + 3; i++){
for (int j = y; j < y + 3; j++)
{
if (num[i][j] == key) return false;
}
}
return true;
}
int DFS(int n){
if (n > 80){
sign = true;
return 0;
}
if (num[n/9][n%9] != 0){
DFS(n+1);
}else{
for (int i = 1; i <= 9; i++){
if (Check(n, i) == true){
num[n/9][n%9] = i;
DFS(n+1);
if (sign == true) return 0;
num[n/9][n%9] = 0;
}
}
}
}
int main(){
string s;
for(int i=0;i<9;i++){
cin>>s;
int j = 0;
for(int k=0;k='0'){
num[i][j++] = s[k]-'0';
}
}
}
DFS(0);
for(int i=0;i<9;i++){
cout<<'{';
for(int j=0;j<8;j++){
cout<
面试官是学姐……挺温柔的
1. 没做自我介绍,学姐开始看我简历,然后一个个项目开始问
2. 代码复用问题(C函数化,C++面向对象说了一通)面向对象的性质
3. 代码量?
4. 你觉得项目负责人需要做些什么
5. TCP和UDP,可靠性
6. 调试中遇到的问题,复盘一个项目调试的全过程
7. 然后开心的聊天,聊人生
8. 手撕代码题
class Solution {
public:
vector twoSum(vector& nums, int target) {
unordered_map m;//key是值,value是下标
vector ans;
for(int i=0;i0){
ans.push_back(m[target-nums[i]]);
ans.push_back(i);
break;
}
m[nums[i]] = i;
}
return ans;
}
};
可能因为我是本科菜鸟,问的都很简单哈哈
1. 复盘笔试
2. 大学的经历?(面试官是亲学长,时不时来一句我当时读书的时候还没有这个……)
3. 最受挫折的事情?
4. 对华为公司了解多少?
5. 最喜欢什么语言?你觉得你在班上能力能排多少?对什么技术最感兴趣?保研还是工作?(夺命连环问)
6. 压力大的时候会干啥?
7. 聊人生……
8. 反问环节
等后面的面试,笔试做的也很差15%,虽然爆零也可以进面试,但是还是尽量考高一些!
附面试题
其实还有一些面试笔试(快手拼多多腾讯奇安信美团等),不怎么想去也没做笔记,基本忘光了
由于暑假还有小学期,打算选就近的华为去实习,后面的一些面试和笔试就都拒掉了
保研的事情也基本搞定了,拿了bupt AI的offer,算是从EE硬件的坑里跳出来了