拿到acm铜奖可以去大厂吗?
从ACM选手的角度讲:
为什么ACM选手在大家眼里都这么牛逼,原因就是很多ACM选手从中学就开始打比赛,你想想看,在你大学才懂一些简单的数据结构和算法的时候,这些中学生就已经ACM竞赛中畅游了。当然,也不是所有人都这样,比如我就不属于这一批,本人大一才开始准备。
除此之外,ACM的题目都很难,难到什么程度?本人在准备期间刷题刷到一度恶心。ACM竞赛很注重选手的分析和思维两方面的能力,在算法和数据结构这样已经足够复杂的题型下,还要进行大量的变形,所以没有一个高强度的培训是不可能有能力参赛。
所以,经历过ACM竞赛的非人锻炼,还坚持下来,并且还有能力拿奖的人一定都非常出色,至少在算法方面比大部分的候选人都要强。
从面试官的角度讲:
但是作为曾经腾讯的面试官,我想说的是,如果你只是为了应付面试而参加ACM,是完全没有必要的。毕竟,准备ACM比赛至少也要三两年的时间。
而算法面试,用一些简单粗暴的方式,准备3~6个月就差不多了。
首先,弄清楚面试考察的高频知识点,这里薅了一个FB大佬讲座上的资料,看过一遍总结的很不错,和我当时算法面试的考察的题型都差不多。讲座是免费的,看了不吃亏,给你们一个地址,戳这里~
最后,再跟着这些知识点总结刷题就对了。
有些人可能会质疑这样的可行性,但是想做出面试的算法题,真的就这么简单。不过一定要精刷题目,精刷到遇到同类型的题目可以直接手撕,请对自己狠一点!
下面我也根据高频考点,和自己以前做面试官出题的尿性**,整理出了一套面试考察几率非常高的算法面试考察题型,以及对应必刷的题目。**这些题目如果都掌握的游刃有余,我觉得面试就没什么大问题了。
1、排序算法 Sorting
必刷题目:
第k大元素
会议室II
有序数组的平方
最佳见面地点
摆动排序II
使用条件
复杂度
• 时间复杂度:
○ 快速排序(期望复杂度) : O(nlogn)
○ 归并排序(最坏复杂度) : O(nlogn)
• 空间复杂度:
○ 快速排序 : O(1)
○ 归并排序 : O(n)
2、动态规划 Dynamic Programming
必刷题目:
最长回文子串
解码方法
换硬币
单词拆分I
正则表达式
最大连续上升子序列
打劫房屋
完美平方
最小划分
跳跃游戏
使用条件
• 使用场景:
○ 求方案总数(90%)
○ 求最值(80%)
○ 求可行性(80%)
• 不适用的场景:
○ 找所有具体的方案(准确率99%)
○ 输入数据无序(除了背包问题外,准确率60%~70%)
○ 暴力算法已经是多项式时间复杂度(准确率80%)
• 动态规划四要素(对比递归的四要素):
○ 状态 (State) – 递归的定义
○ 方程 (Function) – 递归的拆解
○ 初始化 (Initialization) – 递归的出口
○ 答案 (Answer) – 递归的调用
• 几种常见的动态规划:
• 背包型
○ 给出 n 个物品及其大小,问是否能挑选出一些物品装满大小为m的背包
○ 题目中通常有“和”与“差”的概念,数值会被放到状态中
通常是二维的状态数组,前 i 个组成和为 j 状态数组的大小需要开 (n + 1) * (m + 1)
3、双指针算法 Two Pointers
必刷题目:
有效回文II
分割标签
飞机上看电影
装最多水的容器
对数组变换排序
字符大小写排序
在LR字符串中交换相邻字符
使用条件
7. 滑动窗口 (90%)
8. 时间复杂度要求 O(n) (80%是双指针)
9. 要求原地操作,只可以使用交换,不能使用额外空间 (80%)
10. 有子数组 subarray /子字符串 substring 的关键词 (50%)
11. 有回文 Palindrome 关键词(50%)
复杂度
• 时间复杂度:O(n)
○ 时间复杂度与最内层循环主体的执行次数有关
○ 与有多少重循环无关
• 空间复杂度:O(1)
○ 只需要分配两个指针的额外内存
4、二分法 Binary Search
必刷题目:
在排序数组中找接近的K个数
寻找旋转排序数组中的最小值
两数交集
俄罗斯套娃信封
加热器
扇形数组的顶峰坐标
有序矩阵中的第k小元素
完全平方数
使用条件
1. 排序数组 (30-40%是二分)
2. 当面试官要求你找一个比 O(n) 更小的时间复杂度算法的时候(99%)
3. 找到数组中的一个分割位置,使得左半部分满足某个条件,右半部分不满足(100%)
4. 找到一个最大/最小的值使得某个条件被满足(90%)
复杂度
5. 时间复杂度:O(logn)
6. 空间复杂度:O(1)
5、宽度优先搜索 BFS
必刷题目:
不同岛屿的个数
序列重构
迷宫II
课程表
最大子数组
墙和门
二叉树的右视图
最短路径
使用条件
12. 拓扑排序(100%)
13. 出现连通块的关键词(100%)
14. 分层遍历(100%)
15. 简单图最短路径(100%)
16. 给定一个变换规则,从初始状态变到终止状态最少几步(100%)
复杂度
• 时间复杂度:O(n + m)
○ n 是点数, m 是边数
• 空间复杂度:O(n)
6、深度优先搜索 DFS / 递归 Recursion
必刷题目:
有效的括号序列
在排序数组中找最接近的K个数
有效回文串
序列重构
斐波那契数列
解码方法
使用条件
• 找满足某个条件的所有方案 (99%)
• 二叉树 Binary Tree 的问题 (90%)
• 组合问题(95%)
○ 问题模型:求出所有满足条件的“组合”
○ 判断条件:组合中的元素是顺序无关的
• 排列问题 (95%)
○ 问题模型:求出所有满足条件的“排列”
○ 判断条件:组合中的元素是顺序“相关”的。
不要用 DFS 的场景
17. 连通块问题(一定要用 BFS,否则 StackOverflow)
18. 拓扑排序(一定要用 BFS,否则 StackOverflow)
19. 一切 BFS 可以解决的问题
复杂度
• 时间复杂度:O(方案个数 * 构造每个方案的时间)
○ 树的遍历 : O(n)
○ 排列问题 : O(n! * n)
○ 组合问题 : O(2^n * n)
7、二叉树的搜索算法 Traversal
必刷题目:
二叉树的层次遍历
二叉查找树的中后续后继
最近公共祖先
二叉树查找树中的搜索区间
使用条件
• 二叉树相关的问题 (99%)
• 可以一分为二去分别处理之后再合并结果 (100%)
• 数组相关的问题 (10%)
复杂度
时间复杂度 O(n)
空间复杂度 O(n) (含递归调用的栈空间最大耗费)
8、堆 Heap
必刷题目:
丑数 II
K个最近的点
会议室3
特定序列的第K小的数
堆化
K间隔数组排序
使用条件
20. 找最大值或者最小值(60%)
21. 找第 k 大(pop k 次 复杂度O(nlogk))(50%)
22. 要求 logn 时间对数据进行操作(40%)
堆不能解决的问题
23. 查询比某个数大的最小值/最接近的值(平衡排序二叉树 Balanced BST 才可以解决)
24. 找某段区间的最大值最小值(线段树 SegmentTree 可以解决)
25. O(n)找第k大 (使用快排中的partition操作)
————————————————
看完这个回答后,有件小事,能帮助你快速提升自己哟:
免费试听我主讲的九章算法班 2021,除了会讲如何高效刷题、掌握面试算法外,还会谈谈面试中正确沟通的技巧,培养coding style和bug free的能力。覆盖90%国内外一线大厂算法面试高频考点,帮助你1个月内搞定算法面试。首节直播分享中,将会送出算法面试精选100题,刷题100道胜过别人刷300道,有兴趣的同学可以来看看!
拿到acm铜奖可以去大厂吗?相关推荐
- 97.16% 的加班率,给你 3 倍工资:你愿意去大厂吗?
作者 | luna 来源 | 猎聘(ID:liepinwang) 最近想换一份工作,看了不少职位.其中某TOP互联网大厂在我家乡设立的分部的招聘职位引起了我的关注.根据岗位描述,这是一个初级职位,也就 ...
- 能否去大厂的关键内功!
最近逛知乎,看到一个很有意思的帖子.我想这可能是很多人的心声. 下面的观点也挺鲜明的:这是科班与培训班的区别. 只能说,太真实了.我上学的时候,就没学好组成原理.后来到工作中就发现,增删改查还可以,遇 ...
- 作为3-5年的iOS开发者:你为什么迟迟进不去大厂呢?
本文对象是内心渴望进大厂的童鞋,希望你能咬牙看完,转折点也许就发生在今天. 这几年来,至少几十个个朋友跟我聊起这个话题,想进大厂-一门心思进大厂,但是在聊的过程中,我就可以判定: 当下及未来一段周期的 ...
- 计算机研究生就业方向之去大厂做人工智能
我一直跟学生们说你考计算机的研究生之前一定要想好你想干什么,如果你只是转码,那么你不一定要考研,至少以下几个职位研究生是没有啥优势的: 1,软件测试工程师(培训一下就行) 2,前端开发工程师(本科培训 ...
- 那一年,我从计算机专业毕业了,要去大厂还是去小厂?
三个我身上的小故事,让你感受下大厂和小厂有什么区别: 第一个故事: 我毕业那年,我去大厂面试,当然我也去小厂面试,从面试过程中,你很容易感受出大厂和小厂的区别.大厂面试的时候,笔试环节要考很多知识,涉 ...
- 自学算法的那么多人,凭什么他能去大厂和做算法带队人!
今天要给大家推荐的是一个推荐系统领域的算法大牛:Thinkgamer.首先我们回答标题中的问题: 自学算法的那么多人,凭什么他能去大厂和做算法带队人! 他在校期间,自学了Hadoop,Spark和算法 ...
- 【视频】互联网寒冬,经历裁员,拿20W被迫去大厂
[互联网寒冬]经历裁员,拿20W被迫去大厂
- 到底是去大厂当大头兵?还是在小厂磨炼好?
职场生涯总会面临着选择,尤其对我们这些 IT 人来说,跳槽的频率应该是所有行业中相当大的了.那么我们跳来跳去,究竟该选择什么样的公司 ?大 or 小 . 我的思考后给出的建议是毕业的前几年,宁当&qu ...
- 【拖拖拖没烦恼;难难难睡不着】22届错过校招未就业|什么是校招?二本进不去大厂,校招不重要?
哈喽大家好,我是校招VIP的大拿老师.这两天呢,我们在进行人员的招聘,其中不乏一些已经毕了业的22届学生,问他们为什么不在毕业前的秋招或者春招去找工作呢,他们普遍的回答是说学校里面没有招聘会,或是自身 ...
- 程序员是去大厂加班好还是在小公司天天摸鱼打卡下班好?
在知乎看到一个问题 这种问题比较普遍,应该选择大公司还是小公司呢? 咱们先算笔账. 现在 965 一周工作40小时 大厂 995 一周工作50-55小时 工作时长多了至少25%,如果你的工资涨幅超过了 ...
最新文章
- LaTeX 中表格的用法总结(四)——三线表和复杂的表格
- Microsoft Dynamics CRM 2011 相关-摘自网络
- 用Cmake编译Opencv源码,生成动态库
- 黑马程序员--学习while、do-while、for循环、try-catch的用法
- webpack基础第一篇(配置文件)
- 从第一范式到第二范式所做的操作是_数据库设计三大范式
- Linux打开软盘镜像,怎样在Linux下制作软盘和光盘镜像
- 计算机常见知识大全,电脑基本知识
- vue设置右边距_数控CNC雕刻机使用系列之二: 维宏软件的参数设置
- 解密360黑幕:离职奇虎360老员工的告白
- 适合写api接口文档的管理工具有哪些?
- linux终端清除命令,ubuntu清除命令行记录
- arcmap裁剪后的tif保存_在arcgis下如何进行影像图裁剪
- cuda学习笔记(4)
- 无法识别服务器硬件信息,请教:无法获取服务器硬件信息
- CSS面试须知--盒子模型、浮动及定位
- 关于jquery.mloading加载loading效果
- arcgis安装后重启提示 flexnet vendor daemon 交互式服务检测
- 视频教程-网络营销-网站盈利方式/淘宝客网络赚钱/广告联盟-其他
- php中文手册 人间最美四月天,【心灵】人间最美四月天(散文)_江山文学网