大数据开发类岗位算法&编程题准备

2022年跳槽总结,仅供参考

一、算法题考察方式

  • 单独机试
  • 面试时在线手撕
    • 写一道
    • 写多道(笔者遇到要写5道的公司,累呀)
  • codereview形式(仅一家公司遇到,很新颖,值得推广)

注意:

1、难度基本等同于leetcode mid左右,很少出现easy或hard难度的。

2、对开发要求较高的团队会机试+面试手撕

3、除了算法题外,建议也准备下设计模式、多线程、sql类题型

4、大数据开发岗相对后台开发而言,算法题相对轻松一些。

二、准备技巧

磨刀不误砍柴工,刷题才是硬道理!

笔者从一开始白板编程手足无措,到现在中等难度题型游刃有余,踩过不少坑也积攒了一些技巧。

阶段一:代码随想录

面对leetcode上近两千道题目,从何刷起?

代码随想录

这里我首先推荐大家先看下carl大佬的刷题教程,旨在帮助大家少走弯路,循序渐进学算法。

【优势】

  • 典题目高频面试题,约200+道,有直达leetcode的链接
  • 刷题顺序排好了,按照顺序一道一道刷就可以。数组-> 链表-> 哈希表->字符串->栈与队列->树->回溯->贪心->动态规划->图论->高级数据结构
  • C++、Java、Python、Go、JavaScript等等多语言版本
  • 关键知识有视频教学,如双指针、回溯算法。配合视频学习效果更加。

阶段二:剑指offer系列

  • 不建议买《剑指offer系列书》,直接leetcode搞起
  • 时间有限的情况下,建议刷更经典的《剑指offer第二版》,《剑指offer(专项突击)》稍微偏一点。

剑指 Offer(第 2 版) - 力扣(LeetCode)

总共75道题,排除数学题、奇技淫巧类题,大概有60道题是值得刷2遍的。

阶段三:对应企业高频题

需要开通leetcode会员

如图按出题指数排序即可。每个月只需几十元可以刷到更可能碰到的题型。

三、高频题型(部分)

1、回溯

划重点,必考! 复制如下标题至leetcode即可

  • 93. 复原 IP 地址
  • 78. 子集
  • 90. 子集 II
  • 46. 全排列
  • 112. 路径总和
  • 17. 电话号码的字母组合

进阶回溯:

  • 岛屿数量
  • 按图找最近的路径
  • 332.重新安排行程
  • 1036. 逃离大迷宫
  • 剑指 Offer 13. 机器人的运动范围
  • 473. 火柴拼正方形

我的题解 【回溯2道经典题】岛屿数量 & 按图找最近的路径_pierre94的博客-CSDN博客

为什么回溯面试手撕代码中经常出现?

  • 代码量适中,一般十几分钟左右。
  • 难度适中,既需要使用固定模板,又需要综合其他的技巧
  • 算法考察维度多,一般能看出面试者代码编写基本功、回溯思想、递归理解、LinkedList使用、Set使用等多个维度
  • 题目变种多,可以将原题玩出花样
  • 验证方便,不需要构造复杂的二叉树、链表。

2、双指针、滑动窗口

划重点,必考! 复制如下标题至leetcode即可

  • 三数之和
  • 209. 长度最小的子数组
  • 反转链表
  • 24. 两两交换链表中的节点 (进阶:k个一组翻转链表)
  • 剑指 Offer 11. 旋转数组的最小数字
  • 19. 删除链表的倒数第 N 个结点
  • 面试题 02.07. 链表相交

3、栈、队列、优先队列

  • 232.用栈实现队列
  • 剑指 Offer 31. 栈的压入、弹出序列
  • 347.前 K 个高频元素
  • 剑指 Offer 41. 数据流中的中位数

4、二叉树系列

现在考察较少了,因为现场面试不容易构造大量的二叉树案例进行验证。

  • 236. 二叉树的最近公共祖先
  • 剑指 Offer 55 - I. 二叉树的深度
  • 剑指 Offer 28. 对称的二叉树
  • 剑指 Offer 27. 二叉树的镜像

5、排序

  • 快排
  • 冒泡
  • 归并排序

6、其他

  • 210. 课程表 II 拓扑排序
  • LRU
  • 42. 接雨水
  • 56. 合并区间

四、总结

看刷题群同学的讨论,刷题多少和面试效果做如下总结。

是指能在白板写出代码,经典题目至少刷过2遍

  • 1000+:面试几乎是小case,如乱军丛中取敌将首级
  • 500~600:能通过绝大多数面试的手撕代码环节
  • 300~400:能通过绝大多数中等难度的算法题
  • 200~300:能通过绝大多数中等难度原题或轻微变种题 (至少要达到这个环节再面试)
  • 200以下:比较看缘分了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值