杭州前端岗
总共 3 道题,限时 150 分钟
题目描述:
给出一个整数数组,找出出现频率最多的数字,输出该数字在数组中最后一个下标与第一个下标之差,如果有多个频率最高数字,输出最小下标之差。
测试用例:
[1, 2, 2, 3, 3, 4, 3, 1, 1],频率最高的有数字 1 和 3 ,但是 3 构成的数组 [3, 3, 4, 3] 长度 ( 4 )最小,所以输出 4 。
解法:
HashMap ,根据 value 排个序,找出频率最高 key, lastIndexOf - indexOf, 然后 Math.max(ans, tempMax)
总结:
这道题耗时最长,以前从未做过 HashMap 排序,最后转成数组排序的
测试通过率✅: 80%(应该是有 edge cases 没考虑到)
题目描述:
双人自行车限重 m ,给出一组公司员工体重,每个人的体重都小于限重,求最少需要多少辆双人自行车。
解法:
排序 + 双指针
总结:
有思路了就直接 AC 了
测试通过率✅: 100%
题目描述:
连续子列问题,一个整数数组,数据规模较大,输出和( sum )相等的连续子列构成数组的最大长度。
测试用例:
解法:
每一个元素看做一个子序列,遍历一遍
总结:
原题中文描述的,太抽象了,也没掌握过什么高级数据结构和算法,暴力解了
测试通过率✅: 56.36%(数据规模较大,算法复杂度太高,应该是超时了)
当天下午在牛客上刷了 5 道题,熟悉了一下输入输出,晚上题目发过来就做了
机考是用牛客的 ACM 模式,每道题只能提交一次,90 分钟交卷,最后得分 260
运气还算比较,基础数据结构里没有二叉树相关题目
小技巧:草稿纸上演算一次效率超高
以前面试都是盯着屏幕傻看。。。
因为简历上有超过半年空窗期,后面流程也就没往下走了,另外,因为身体原因,不大能适应加班。
有需要的就当经验帖了
1
ajaxgoldfish 2023-01-05 09:14:46 +08:00
前端难度和 cpp 难度相差大吗,我现在算法大约也就这个水平。
|
2
BanGanExpert 2023-01-05 09:31:05 +08:00
前端都这样了?这个是面试几年的?我是没有大厂面试经历,还是大厂都是这风格吗
这难度虽然其实并不算难,就我作为 Java 工程师来看,我估计很多 3 年水货工程师是过不了的 |
3
TuneG 2023-01-05 09:38:03 +08:00 via iPhone
华为笔试题不区分年份的,都是一样的题,不管你是几年,都是一个系统考试,难度基本就是 leetcode 中等难度题,年份只是面试和定级的时候有用
|
4
hidemyself 2023-01-05 09:39:43 +08:00
od 就这样,机试稍微难一点,不分前后端,题都一样的。
几轮面试的题目会简单一点。 |
5
tialias 2023-01-05 09:47:34 +08:00
我当时面 od-测试,第一道就是接雨水,第二道是什么小岛动态规划的
|
6
muntoya 2023-01-05 09:48:23 +08:00 2
@BanGanExpert #2 哈哈,要有自信,做出这些题不需要是工程师,工程师也不会用到这些,好多应届生刷了几百题就能过了
|
7
mingszu 2023-01-05 10:01:29 +08:00
@BanGanExpert 跟几年经验没关系,刚毕业的甚至算法能力更强,毕竟人在学校没事就刷
|
8
chendl111 2023-01-05 10:11:32 +08:00
校招刷个 200 到 leetcode 水平
|
9
jincan39 2023-01-05 10:58:24 +08:00
小兄弟 为啥最近半年空窗?
|
10
mmmfj 2023-01-05 11:04:38 +08:00
之前问过 od 招聘的有空窗也没事,为什么你不继续面了
|
11
A555 2023-01-05 11:31:50 +08:00
一题不会 😅
|
12
daliusu 2023-01-05 11:36:35 +08:00
@ajaxgoldfish 华为 od 是玄学招聘,我前端同事之前做了一次瞎做也过了,感觉这个就是流程,而且都是一样的难度,只是根据实际岗位肯定会有放水情况
|
13
YadongZhang OP @ajaxgoldfish
cpp 是指 c++ 吗? 以前还会写 hello world ,现在都不会了,不知道难度差别大不大 @jincan39 Freelance Web3 太爽了 @mmmfj 因为 od 招聘说有事,微信突然不回,问了才知道。另外,有加班,身体原因顶不住。。。 |
14
Promtheus 2023-01-05 14:33:05 +08:00
@BanGanExpert 如果没有刻意刷过题的话,大多数十年的都不见得会做。这和年限都没关系。毕竟实际开发中很少用到算法
|
15
jedihy 2023-01-05 14:36:10 +08:00
@BanGanExpert 算法题不是你工作几年就会做的。刷三个月题比三十年工作经验管用。这种 LC easy-medium 的经典题直接可以默写。
|
16
YadongZhang OP @jedihy 太强了,羡慕可以直接默写的,我差点写哭了,写不出来嘛
|
17
7911364440 2023-01-05 15:47:15 +08:00 1
@YadongZhang 你刷下 leetcode 就知道了,很多题都是有套路的,想不出来也很正常。
|
18
tonytonychopper 2023-01-05 22:32:52 +08:00 1
OP 有空可以刷下 lc ,这几道题都算比较经典的
|
19
zanx817 2023-01-05 22:52:07 +08:00
第三题有没有第二个参数 K ,要求 sum=k 的子数组?
此时引入 prefix sum 可解。 如果没有 k 的话,这个题是 hard 难度了。目测要用 hash 。 |
20
zanx817 2023-01-05 22:56:06 +08:00
目测:第一题是典型的滑动窗口题。 OP 的解法应该是不佳的。 应引入 hash 记录频率。
|
21
zanx817 2023-01-05 22:56:41 +08:00
笔试 2.5 小时,比考博时间还要长了
|
22
yifangtongxing28 2023-01-05 23:45:11 +08:00 1
大家的重点为什么都在题目上,不应该是 od 对空窗半年的人直接拒绝吗?
|
23
netabare 2023-01-06 04:30:39 +08:00 1
手写还是 OJ 还是指定机器?
光看描述感觉没什么难的……?看起来都是很基础的算法题。一道题 50 分钟,很宽裕了。当然也要看数据集怎么样,如果是类似 ACM 那种数据集的话估计还是有点压力。 |
24
JasonLaw 2023-01-06 08:26:58 +08:00
```python
from math import inf arr = [2, 5, 9, 4, 3, 3, 6, 1, 7, 4, 1, 2] d = {} for i, n in enumerate(arr): if n not in d: d[n] = [0, i, i] d[n][0] += 1 d[n][2] = i max_freq, index_diff = -inf, inf for n, v in d.items(): if v[0] > max_freq: max_freq = v[0] index_diff = v[2] - v[1] elif v[0] == max_freq: index_diff = min(v[2] - v[1], index_diff) print(index_diff) ``` |
25
JasonLaw 2023-01-06 08:30:01 +08:00
|
26
JasonLaw 2023-01-06 08:40:08 +08:00
|
27
JasonLaw 2023-01-06 08:46:13 +08:00
不是很理解第三题。
“连续子列问题,一个整数数组,数据规模较大,输出和( sum )相等的连续子列构成数组的最大长度。” sum 指的是什么,一个参数吗?是要我们找出总和等于 sum 的最长的连续子数组的长度吗? |
28
YadongZhang OP |
29
JasonLaw 2023-01-06 11:25:12 +08:00 via iPhone
@YadongZhang #28 完全不理解那个例子,可以的话,解释一下?
|
30
YadongZhang OP @JasonLaw
以第一个数组来例 8 8 9 1 9 6 3 9 1 0 连续子列的和可以是任意单独元素 假设是 8 ,那么构成最终数组的连续子列分别为 [ [8], [8], ] 该数组长度为 2 第二个元素结果相同,直接跳过 遍历到第 3 个元素 9 [ [9], [9], [6, 3], [9] ] 该数组长度为 4 ,更新结果 Math.max(2, 4) = 4 继续遍历,和为后面元素的连续子列构成的数组长度均为 1 所以最终输出 4 原题描述是挺抽象的,我是看题目标题和测试用例推出来的,不知道我理解对不对 |
31
asensio 2023-01-06 15:52:19 +08:00
op 是目标院校么,非目标院校的要 300 多分额
|
32
asensio 2023-01-06 16:12:17 +08:00
求分享下做 Freelance Web3 的经历,😄
|
33
hardto 2023-01-08 21:34:34 +08:00
同求分享一下 freelance 的经历吧
|
34
ccc825 2023-01-09 00:19:38 +08:00
22 年上半年做的笔试题,如果不涉及比较难的动态规划、滑动窗口这类题,用 php 感觉很简单,做了 320 分。
然后现在入职了尝试考了一次专业级 c 的算法题,0 分…… c 真的太难了,排序和哈希都得自己去实现。还好 od 要求转正前过工作级就可以,努力学下 c 和算法应该没什么大问题。主要是不知道能不能干到转正,入职两个月已经想跑路了,做的东西有一点兴趣但是太难学,而且以后跳槽方向很小 |
35
UN2758 2023-01-11 09:12:34 +08:00
之前做过 od 的机试,只记得有道二维矩阵搜索,那时候题目比较简单,只有一道题目用例不是百分百,现在应该变难了
|