1.5 小米求职攻略-理工科版本

1.5.1 校园招聘时间流程

网申

机考

面试

offer

7月-8月

8月-10月

9月-10月

10月-12月

1.5.2 薪资爆料

岗位

地点

学历

薪资范围(年薪)

算法工程师 - APP搜索推荐方向

北京

硕士

280-340元/天

前端工程师(实习)25届

武汉

本科

200-500元/天

Java

北京

本科

200-250元/天

未来星-相机仿真工程师-手机

北京

本科

20-30K * 12薪

未来星-相机仿真工程师-手机

武汉

本科

20-30K * 12薪

前端工程师

武汉

本科

10-20K * 14薪

*数据来源 牛客用户,更多详细信息可到牛客查询

1.5.3 面试真题

1、 矩阵相乘

【题目描述】

实现矩阵相乘函数void matrix_multiply(int* A, int* B, int* C, int M, int K, int N)

暂不考虑整型溢出,请尽可能优化运行速度。

参数说明:0 < M,K,N < 1000

C[M][N] = A[M][K] * B[K][N]

输入描述:

输入矩阵A和矩阵B的值:

M=2, K=3,N=2

A[2][3]={{1,2,3},{1,2,3}}

B[3][2]={{1,1},{1,1},{1,1}}

输出描述:

输出矩阵C的值:

C[2][2]={{6,6},{6,6}}

输入样例:

2 3 2

1 2 3

1 2 3

1 1

1 1

1 1

输出样例:

6 6

6 6

【解题思路】

三层循环实现矩阵相乘操作即可。

【参考代码】

#include <stdio.h>

#include <stdlib.h>

#include <assert.h>

#include <sys/time.h>

void matrix_multiply(int *A, int *B, int *C, int M, int K, int N) {

int i = 0;

int j = 0;

int k = 0;

for (i = 0; i < M; i++) {

for (j = 0; j < N; j++) {

int sum = 0;

for (k = 0; k < K; k++) {

sum += A[i * K + k] * B[k * N + j];

}

C[i * N + j] = sum;

}

}

}

void matrix_multiply_opt(int *A, int *B, int *C, int M, int K, int N) {

int i = 0;

int j = 0;

int k = 0;

for (k = 0; k < K; k++) {

for (i = 0; i < M; i++) {

int r = A[i * K + k];

for (j = 0; j < N; j++) {

C[i * N + j] += r * B[k * N + j];

}

}

}

}

int main(int argc, char **argv) {

int M, N, K;

scanf("%d%d%d", &M, &K,

&N); // printf("%d %d %d\n", M, N, K); assert(M>0 && M<=1000);

// assert(N>0 && N<=1000); assert(K>0 && K<=1000);

int *A = (int *)malloc(M * K * sizeof(int));

int *B = (int *)malloc(K * N * sizeof(int));

int *C = (int *)malloc(M * N * sizeof(int));

int i = 0;

while (i < M * K) {

scanf("%d", &A[i]); // printf("%d ", A[i]); // if ((i+1)%K==0) { //

// printf("\n"); // } i++;

}

i = 0;

while (i < K * N) {

scanf("%d", &B[i]); // printf("%d ", B[i]); // if ((i+1)%N==0) { //

// printf("\n"); // } i++;

}

matrix_multiply_opt((int *)A, (int *)B, (int *)C, M, K, N);

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

printf("%d ", C[i * N + j]);

}

printf("\n");

}

}

2、单词搜索

【题目描述】

给定一个二维网格和一个单词,找出该单词是否存在于网格中。

单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格,同一个单元格内的字母不允许被重复使用。

二维网格为:

[

['A','B','C','E'],

['S','F','C','S'],

['A','D','E','E']

]

输入描述:

需要查询的单词

输出描述:

true 代表单词存在,false表示不存在

输入样例:

SEE

输出样例:

true

【解题思路】

从搜索单词的第一个字母出发,从矩阵中匹配然后开始进行dfs搜索只到完全匹配为止。

【参考代码】

import java.util.Scanner;

import java.util.List;

import java.util.ArrayList;

public class Main

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

2024校招宝典——软件版本 文章被收录于专栏

牛客独家出品,理工科求职必备攻略,适合岗位: 软件开发、数据库分析、软件测试、前端后端开发

全部评论

相关推荐

已经入职字节快一个月了,突然想起来之前那段时间的面经没有发,先发一下timeline吧。Tiktok&nbsp;内容安全平台(人才库电话捞我):电话10.28&nbsp;-&gt;&nbsp;一面10.30(我觉得你跟我们组业务挺match的,然后过了三天问hr挂了,应该是别人流程更快)阿里淘天:投递11.11-&gt;约面11.12-&gt;一面11.14(问得很简单,30分钟,手撕八股全过无后续)Kpi面腾讯wxg&nbsp;微信小程序:投递11.13&nbsp;-&gt;约面11.14-&gt;&nbsp;一面11.17&nbsp;(究极无敌拷打,问我多模态大模型涉及的算法?但是人很好)-&gt;11.19流程终止小红书&nbsp;风控平台:投递11.16&nbsp;—约面11.17&nbsp;&nbsp;-&gt;一面11.18&nbsp;(抽象的面试官,面试感觉一般,问得前端网页安全相关的,确实没准备)-&gt;11.20挂百度&nbsp;百家号:投递11.14&nbsp;—&gt;约面11.14&nbsp;-&gt;一面11.14(当场约2面)-&gt;二面11.24-&gt;口头告知offer,&nbsp;拒绝(原因是业务不太好)美团&nbsp;技术平台投递11.17&nbsp;-&gt;&nbsp;约面(忘记了,没多久)&nbsp;-&gt;一面11.19&nbsp;-&gt;二面11.21&nbsp;(字节offer不想面了)快手&nbsp;电商业务投递11.17&nbsp;-&gt;&nbsp;约面11.18&nbsp;-&gt;一面11.19&nbsp;-&gt;&nbsp;二面11.21(拒了)腾讯wxg&nbsp;微信支付(被捞):(直接发面试邮件)技术一面12.05&nbsp;-&gt;技术二面12.11&nbsp;-&gt;技术三面12.17&nbsp;-&gt;&nbsp;hr面已拒绝(了解业务后拒绝,但是有转正hc,感觉还蛮可惜)字节跳动&nbsp;xxxx:东家就不放具体的时间线了,大概是面完第二天就能知道结果,除了有几天ld请假了没填面评。不去wxg还有个原因是还在期末周,深圳学校来回太麻烦了,至少现在在的组感觉能学到很多的东西,自己的选择应该也没错。还是感概一下,一年前大二的时候投简历海投基本上石沉大海,无论大小厂约面比例很少。现在基本上投了就有面试,还都是以前梦寐以求的大厂,现在自己也有了更多的选择,也没有投太多简历。也感谢上一段实习的经历,很有意思的项目,无论是字节,腾讯,还是美团基本都有聊这个项目。面经需要等一下,也许等周末有空了再发给各位uu,感兴趣可以关注一下~有想要交流学习的同学也可以私信我,目前人在北京大钟寺~,可以找搭子~
正能量的牛可乐:这么多大厂面试下来,不仅摸清了不同公司的面试风格,还能精准避雷业务不匹配的岗位,血赚
实习简历求拷打
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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