老版
新手班(扫盲)
基础班(低+中)
进阶班
一共78节
高阶段的基础(16节)
题(经典+高频)
新版
体系学习班
github代码:github.com/algorithmzuo
老版的基础+进阶的基础部分+题+若干升级点LRU、迪尼克算法(网络最大流算法)等(消除短板)
大厂刷题班
老版进阶中的题+大厂或各路来源的新题(实时的题)
最起码看体系1-40和进阶49-78
想万无一失去看其他的题
学习节奏
- 新手班
- 体系学习班(1-40节一定要掌握,41-47节低频一点可以暂时放但最后一定要看)(体系学习班不能跳可以快进)
- 大厂刷题班(49-78节力扣高频题)
- 大厂刷题班直播或刷题班17-48节的内容(前16节已经讲过了)
- 大厂刷题班中挑新的题看
- 面试经典题(17-48题,不跟直播一定要看),不看就跟直播
要复习、理解、写代码;要扩充题的!
左老师是个编剧
问题与技巧
学了总是忘
老师上课洗脑 一定要自己手动实现出来 自己觉得会了之后给自己讲或者给新人、同学讲 题核心的两三句话,看似难,但要把核心的那两三句话写下来、记下来 每一题提炼出两三个点记下来 两三句话不需要多长时间 看课+练课上的题(写熟)
coding无捷径,杜绝无效练习
只做老师上课讲的题就足够了,要写很多代码才行!按照左老师的写法!避免无效的练习!熟!
杜绝用抽象化来思考 通过例子来摸明白题目 由具象化到抽象化 先举例子!!! 写代码时脑子里不要放很多抽象的东西 先用具体的例子确定下来时代码该怎么写(流程没摸熟) 用小例子摸熟流程再写代码 确定的情况下代码怎么写,流程熟练了再做抽象化 看似最慢其实最快
边界值总是错的问题
使用对数器! 写代码时不要畏手畏脚的 对数器使用小样本量来还原所有情况的东西 让对数器给出一个错误的例子之后再去调边界 不要怕写不好边界,大胆地去写
- print大法打印每一个中间步骤
- 断点调试
栈溢出—->先缩小范围,假设数组长度为3,看是怎么溢出的 假设小数据量的错误可以很容易找到—->对数器提供了这样一个小数据量
笔试时数据类型溢出方面
算法中模一个数100000007(类似这样) 方法1:每一个中间结果都用long类型接着,不行再转成long long 方法2:每一次计算中间结果都模一下100000007 方法3:都用
杜绝小问题调用大问题
大问题拆成小问题,小问题拆成小小问题,小小问题拆成basecase 0~i-1已经确定下来了,问i~n有多少种有效的 是一种从左往右的尝试模型 不可回头更改,不可回头转换 确定的已经做完决定的对象就不让他动了,而从之往后的东西可以自由选择 永远保持问题的规模是在减小的
算法题一般都是要实现的
笔试:过case 电话面试:共享文档 面试:看问题规模,跟面试官去聊(黑盒组合、实现某一具体黑盒……)(由篇幅决定)
笔试有无
社招有的有笔试有的没有 外企基本会有笔试(社招、校招) 社招考笔试——>领英LinkedIn——>找内推(多勾搭、勾熟练、直接内推)
面试算法
一般是面试官被这题虐了,拿过来考你(得瑟考你) 面试不需要审题 面试官在基础上变换题目怎么办 如何精确定位考的算法的范围 面试官不希望你会,他主要是想难住你,获得快感,得瑟,但他确实知道主要思路D—->D’—->D’’ 不要闷头,自信(不要沉稳、不要沉默寡言) 把有的想法念叨出来,让面试官听到 说的不是答案的时候,面试官很得瑟 但是说到正确的想法时,面试官的快感会急剧下降,从人性的角度看,他甚至开始会有想让你过的想法,惺惺相惜的感觉,他会开始提醒你,引导你的思路 心理战
面试的唯一目的是让面试官喜欢你
想法、coding、交流上喜欢你 而不是一个问、一个答,做试卷那样的 面试官不一定会🧔
地域
业务多的地: 北京、上海、杭州、广州、深圳、成都
学历
过hr可能会卡 多勾搭,走内推 嘴勤问出金麻汁来 多交流 科学上网???????? 校招会卡学历、社招不一定会卡 多聊聊:大神你好,大神再见(领英linkedIn)
外企
外企更注重算法,比国内更重视 careercup.com面经网,算法题、系统设计题(库) thought work薪水一般,做的事一般 牛课 爱彼迎(写题,写不过就再也不要来了) 很少进苹果的,就一产品经理 外企一般用英文笔试,面试是中国人还行,外国人可能就必须要用英文了
测开
测开与普通的测试差别不是特别大(算法领域)
华为
和腾讯、阿里差不多,到不了字节的高度,又没有google那么难 难度是有的
字节
算法更难一些
面试时
算法在准备的时候不需要做差异化定制,非算法领域做差异性定制(简历定制)
外企 14条精神准则,面试的时候聊这个有可能会增加机会
公司文化
百度简单可信赖 阿里…… 公司精神包装一下自己
课上的想法想不到了,就跟他说怎么想的,各种尝试模型都跟面试官说,最忌不说话,无论如何都不要不说话
大厂进新部门就是新业务,开源项目、东西,注重系统设计
学习的时候选择业务相关的,技术可以做很多业务,技术本身的特点决定了可以做哪些业务(要能运用)
小厂业务不一样就不一定了,可能更注重业务
看简历只会看第一页,第一页就抓人眼球
无年龄歧视
google一年只要写3000来行代码
代码生成的技术也发展起来了,很多自动写代码的,主要是调优
coding境界没有穷尽
国企
大厂
博一把,公司合伙人(不想待在大厂)
拼经验、拼能力、拼精力、学习技术拼拼不过年轻人
初创公司
人工智能、算法、技术驱动
智能炒股
国家政策扶持、反垄断
🤏随想
- 哈佛5-6点—>精神类的药,但副作用大—->不孕不育
- 系统设计问题
- 算法岗指的是机器学习、数据挖掘的岗位(有他们专门的算法)
- 书《算法》、算法导论、左神算法刷题书