非科班算法 面试总结 数据结构 & 算法&概率 & 机器学习
楼主本硕学的都是机械专业,21届自学转算法,有幸获得了15+ 算法offer,目前在字节跳动 Data 做推荐算法,这是我最近刚开始做的公众号。
「苏学算法」直达链接: https://mp.weixin.qq.com/s/A4mWbbCbVf3UD27WHmRw9w (刚改名,还没生效,暂时名字为 ME的地盘ME做主。)
后续会持续更新刷题笔记、大厂面经、常考的算法原理 以及 推荐算法领域的前沿论文,当然也会分享一些生活记录,欢迎关注我的公众号 「苏学算法」呀!😊 😊 😊
================================= 分割线 ====================================
十大经典排序算法
其中 ⭐ 个数表示出现频率高低
零、其他
- 牛客多行多案例输入输出(依图科技)
- 牛客网输入输出 Python
- Python读写 txt
- Python以一定的概率生成某个数
- Python 中列表( List )中的 del,remove,和 pop 等的用法和区别
笔试有要求输出位数时,采用不要用 round(),而应该用:
1 | print("%.6f"%ans) # 保留 6位小数 |
一、 排序算法 & 查找 & top k
三、链表
- 手写链表常规操作(创建、插入、删除)
- 【LeetCode】141 环形链表 I, ⭐⭐⭐ 142. 环形链表 II(双指针 中学追及问题) ⭐
- 【LeetCode 】160. 相交链表 ⭐⭐⭐⭐
- 【LeetCode 】234. 回文链表 ⭐⭐
- 【LeetCode 】876. 链表的中间结点 ⭐
- 【LeetCode 】19. 删除链表的倒数第N个节点
- 【剑指offer】22. 链表中倒数第 k 个节点
- 【LeetCode】206. 反转链表 & 92.反转链表 II(反转 m 到 n 的链表)⭐⭐⭐⭐⭐⭐
- 【LeetCode】83. 删除排序链表中的重复元素(保留或者不保留) ⭐⭐⭐⭐
- 【LeetCode】2. 两数相加 ⭐⭐⭐⭐(链表逆序存储 & 445. 两数相加 II(链表正序: 栈)
- 【LeetCode】21. 合并两个有序链表(简单) ⭐⭐⭐⭐
- 【LeetCode】23. 合并K个排序链表(困难)⭐⭐
- 【LeetCode】25. K 个一组翻转链表 ⭐⭐⭐⭐⭐⭐
- 【leetCode】86. 分隔链表
- 【LeetCode】148. 排序链表
- 【LeetCode】143. 重排链表
- 【LeetCode】328. 奇偶链表
四、数 & 数组 & 矩形 & 指针
五、DFS、BFS、栈、队列、回溯
-
【LeetCode】155. 最小栈 (使用辅助栈)⭐& 面试题 03.05. 栈排序 ⭐⭐(手写 push、pop )
-
【LeetCode】39. 组合总和 & 40. 组合总数 II & 216. 组合总和 III & 1~n 这n个数组合成 m
六、动态规划 & 子序 & 子串
七、字符串
- No. 1143 【LintCode 最长AB子串 O(N)复杂度 解法】
- 【LeetCode】3. 无重复字符的最长子串 ⭐⭐⭐⭐
- 【LeetCode】394. 字符串解码 ⭐⭐
- 【LeetCode】8. 字符串转换整数 (atoi)
- 读取两个文件的字符数组,并求其交集
- 【LeetCode】344. 反转字符串
- 【LeetCode】415. 字符串相加
- 删除最小字母(第四范式算法一面)
- 【LeetCode】58. 最后一个单词的长度
九、位运算 & CPU逻辑 & 括号 & 进制 & 正则式 等
- 【LeetCode】231. 2的幂 ——判断一个数是不是2的整数次幂
- 【LeetCode】136. 只出现一次的数字(异或运算秒杀)& 137. 只出现一次的数字 II⭐⭐
- 【剑指 Offer】 15. 二进制中1的个数
- 【LeetCode】636. 函数的独占时间
- 【LeetCode】146. LRU缓存机制 ⭐⭐⭐
- 【LeetCode】460. LFU缓存
- 【LeetCode】20. 有效的括号
- 【LeetCode】32. 最长有效括号
- 【LeetCode】93. 复原IP地址
八、游戏规则类(麻将、其他等)
- 【面试】麻将胡牌【字节跳动、递归】
- 【剑指offer】61. 扑克牌中的顺子
九、Python 语言
- 装饰器
- Python中错误和异常处理
- Python读写 txt
- Python @property 与 @staticmethod 装饰器的介绍与使用
- Python 的深拷贝和浅拷贝
- 创建二维数组 以及 python中[0 ]* n与[0 for _ in range(n)]的区别与联系
十、概率题 & 开放题 & 智力题
- 极大似然估计(Maximum Likelihood Estimation)
- 概率p输出1,概率1-p输出0,等概率输出0和1 & rand7()构造rand10() 系列变形(新浪、字节面试题)
- 数据集{X, Y} 猜测 y和x之间存在函数关系 y = a e^(wx) + E, E~N(0, σ)请设计一个算法拟合出 a,w
- 投骰子连续两次是 6就停止,求投掷的次数的期望 & 系列变形
- 【概率】甲乙射击比赛,单局甲胜率0.6,3局2胜和5局3胜两种赛制甲如何选择?无限多局,甲获胜概率?
- 面试常问智力题
- 【LeetCode】458. 可怜的小猪(试毒药)
- 【LeetCode】1227. 飞机座位分配概率
- A有 n+1 个硬币,B有 n 个硬币,A比B得到更多的正面朝上的概率是多少?
- 牛客汇总智力题 40 道
十一、Tensorflow
- Tensorflow 实现最简单 CNN 示例
- Tensorflow卷积实现原理+手写python代码实现卷积
十二、计算机基础、C++
十三、强化学习
- 马尔科夫决策过程(MDP)
- 时序差分离线控制算法Q-Learning
- 时序差分在线控制算法SARSA
- 深度确定性策略梯度(DDPG 公式推导)
- 莫凡 DDPG
- 李宏毅 Proximal Policy Optimization (PPO)原理
- 莫凡 代码 Policy Gradients (Tensorflow)
- Imitation Learning
- DeepMimic
十四、CNN 细节
- 卷积实现原理
- 反卷积
- Depthwise卷积与Pointwise卷积
- 卷积基本计算公式,padding
- pooling层的作用
十五、结合项目(逻辑回归、SVM、FFT等)
- 【超详细公式推导】关于交叉熵损失函数(Cross-entropy)和 平方损失(MSE)的区别
- LR 和 SVM 联系与区别和联系 &核函数的使用
- 逻辑回归 LR 详细推导
- 傅里叶变换公式及其推导【超详细!】
- LSTM 为什么能够解决梯度消失问题
- 手推 梯度消失和梯度爆炸问题
- 防止过拟合
- Dropout原理
- 激活函数总结
- 机器学习中的优化方法
- 深度学习中的优化算法总结 Optimizer
- 集成学习 Bagging Boosting
- 孤立森林(缺点)
- RF、GBDT、XGBoost 面试笔记
- 20道XGBoost面试题
- 标准化和归一化 超全详解
- Batch Normalization 超详细解读 ⭐⭐⭐⭐⭐
十五、面经
- 【面经】作业帮 2021 届提前批一面
- 【面经】百度 feed 推荐 一面 提前批面试手撕代码题
- 字节跳动面试题,给定数据集,已知函数关系,拟合参数
- 2021届华为提前批面试记录
- 【面经】百度 feed 推荐算法二面
- 【面经】小米未来星提前批一面
- 【面经】OPPO 机器学习一面
- 【面经】触宝算法工程师一面
- 【面经】好未来面试一面
- 【面经】百度语音一面
- 【面经】美团算法一面
- 【面经】好未来二面面经
- 【面经】寒武纪算法一面
- 【面经】京东搜索广告算法一面
- 【面经】字节跳动 Data 算法一面、二面
- [【面经】腾讯技术2面+HR+ GM面]
- [【面经】百度语音部门 3 技术 + 经理面]
- 【面经】字节跳动 Data 算法三面
- 【面经】360算法一面
- 【面经】第四范式机器学习算法 一面
- [【面经】深信服机器学习二面]
- 【面经】美团机器学习算法一面
- 【面经】美团机器学习算法二面
- 【面经】腾讯 AiLab 机器学习算法工程师 一面