算法工程师-机器学习-数据科学家面试准备2- Leetcode

https://github.com/LongxingTan/Machine-learning-interview

整体目标

  • lc: 总量600~800,其中高频300熟悉,且能bug free的写出多种解法
  • ml: 熟悉推荐系统与NLP,常见场景系统设计,模型发展的脉络,常用模型的理论与优化

四月计划

  • lc: 400+,300m, 35h
  • KDD: wiw, 熟悉nlp/llm相关应用
  • lawer: 具备rag+agent高端
  • reco: 具备系统设计能力, 熟悉比赛与论文

3D:

  • 自己的项目重新review
  • kdd baseline与设计
  • lawer的设计与规划

2023-九月刷题

序号日期题目评论
1091833. Search in Rotated Sorted Array1. 有一半必然存在单调,二分 2. 各种边界
20918209. Minimum Size Subarray Sum滑动窗口,理论上一次循环,右边界在循环
3091859. Spiral Matrix II左右都可以闭区间,否则开区间注意填充奇书中心值
40919707. Design Linked List边界、循环等细节
5091924. Swap Nodes in Pairs画图模拟,几个细节容易出错
6091919. Remove Nth Node From End of List快慢指针
70920142. Linked List Cycle II可以采用列表记录,或快慢指针,快指针回到起点
80920454. 4Sum II记录前两个出现的和次数,再从后两个和中哈希查找
9092015. 3Sum注意去重
10092118. 4Sum和3sum基本一样,去重
110921151. Reverse Words in a Stringsplit 双指针
120921150. Evaluate Reverse Polish Notation栈,字符串转实际运算符
130922239. Sliding Window Maximum单调队列,和单调栈结合起来看
140922347. Top K Frequent Elements字典或heap
150922102. Binary Tree Level Order Traversalbfs
160923107. Binary Tree Level Order Traversal IIbfs
170923199. Binary Tree Right Side Viewbfs
180923429. N-ary Tree Level Order Traversalbfs
190923515. Find Largest Value in Each Tree Rowbfs
200923116. Populating Next Right Pointers in Each Nodebfs
210923117. Populating Next Right Pointers in Each Node IIbfs
220924513. Find Bottom Left Tree Valuebfs
230924106. Construct Binary Tree from Inorder and Postorder Traversal构造,从root开始,前序
240924105. Construct Binary Tree from Preorder and Inorder Traversal构造,从root开始,前序
250925654. Maximum Binary Treel构造
26092598. Validate Binary Search Tree中序
270925236. Lowest Common Ancestor of a Binary Tree祖先含义需要转化为理解
280925235. Lowest Common Ancestor of a Binary Search Tree
290926701. Insert into a Binary Search Tree
300926450. Delete Node in a BST
310926669. Trim a Binary Search Tree
320927538. Convert BST to Greater Tree从右向左的中序遍历
33092777. Combinations回溯:n叉树,树的宽度和深度;模版;增加path[:] copy
340927216. Combination Sum III
35092817. Letter Combinations of a Phone Number理解这时树的宽度、深度分别对应什么
36092839. Combination Sum
37092840. Combination Sum II注意如何去重,排序,在单层逻辑前判断相等的话略过
380929131. Palindrome Partitioning
39092993. Restore IP Addresses
40092978. Subsets回溯,前面的都是叶节点归入结果,子集是全部节点进入结果集
41092990. Subsets II注意根据排序,和宽度时如何去重
420929491. Non-decreasing Subsequences按树宽度去重,按set或hash去重,结果筛选
43092946. Permutations树往下的时候,需要从剩余集合中选择,因此排列问题需要标记visited
44092947. Permutations II去重: 叶节点+visit判断
450930332. Reconstruct Itinerary
46093051. N-Queens
47093037. Sudoku Solver
480930376. Wiggle Subsequence
49093053. Maximum Subarray
500930122. Best Time to Buy and Sell Stock II
51100855. Jump Game只记录覆盖范围并更新
52100845. Jump Game II我会更习惯动态规划解法
531008134. Gas Station贪心不好想,先掌握暴力模拟
541008135. Candy两次模拟
551008406. Queue Reconstruction by Height排序的key是关键
561008452. Minimum Number of Arrows to Burst Balloons
571008435. Non-overlapping Intervals
581008763. Partition Labels
59100956. Merge Intervals
601009738. Monotone Increasing Digits字符串不能直接给一位赋值,list(str(n))
611009968. Binary Tree Cameras
62101062. Unique Paths2d 简单动态规划
63101063. Unique Paths II障碍物初始化时,只有障碍物前的才会1
641010343. Integer Break通过举例过程想到动态规划
65101096. Unique Binary Search Trees通过举例过程想到动态规划,和上一题有点像
661011416. Partition Equal Subset Sum要如何想到是背包?
6710111049. Last Stone Weight II
681011494. Target Sum
691011474. Ones and Zeroes??
701012518. Coin Change II
711012377. Combination Sum IV
721012322. Coin Change经典题目
731013279. Perfect Squares
741013139. Word Break如何想到用背包?
751013198. House Robber
761014213. House Robber II
771014337. House Robber III树形DP
781014122. Best Time to Buy and Sell Stock II动归,第2维是状态,这里是持有或不持有
791014123. Best Time to Buy and Sell Stock III完成2笔,就是0/1/2/3/4
801014188. Best Time to Buy and Sell Stock IV123的2进一步参数化,for
811014309. Best Time to Buy and Sell Stock with Cooldown注意划分多个状态及状态见转移
821014714. Best Time to Buy and Sell Stock with Transaction Fee和122类似,卖出时加上手续费
831015300. Longest Increasing Subsequence
841015718. Maximum Length of Repeated Subarray
8510151143. Longest Common Subsequence
8610151035. Uncrossed Lines
87101553. Maximum Subarray
881015115. Distinct Subsequences
891015583. Delete Operation for Two Strings
90101572. Edit Distance
911015647. Palindromic Substrings
921015516. Longest Palindromic Subsequence
931016739. Daily Temperatures单调栈,没有很理解其初始化,自己独立写可能还是会出问题
941017503. Next Greater Element II
95101742. Trapping Rain Water
96101784. Largest Rectangle in Histogram
971018797. All Paths From Source to Target
981018200. Number of Islands
9910191020. Number of Enclaves
1001019417. Pacific Atlantic Water Flow
1011020130. Surrounded Regions

2023十二月刷题

序号日期题目评论
1120833. Search in Rotated Sorted Array1. 有一半必然存在单调,二分 2. 各种边界

首先需要科学的准备面试和润。如何进行科学的准备工作呢?

  • 高效的按照面试考察内容进行针对性训练,按 Machine-learning-interview进行准备
  • 保证处于专注的心态,如今互联网娱乐发达,之前即使比赛时我也是一边比赛一边看视频。之后准备面试要关机,拿走ipad,网页全屏
  • 劳逸结合,每天按照规划内容进行准备。不必急于求成,按部就班。规律的作息,适当的运动,保持一个好的心态

长期计划

  • 半年内找到外企或国外工作
  • 在推荐、NLP(sequence modeling)、多模态领域熟悉
  • 多读研究论文,多参加kaggle比赛,多做开源项目

2023 十月计划

科学刷题(作息、回顾、进度)】

  • 每一个接的面试都要非常认真准备,但不必等到完全准备好了才去申请或者面试
    • medium题看完题目后五分钟能写出丝滑的答案
  • 目标1: 10月10号完成一刷,代码随想录median+hard
    • 国庆期间完全没有按照周末的节奏刷题,完全在家躺了,预估延误2周!!!
    • 1020基本完成,但是动态规划过半后的题,其实只是看懂了,没有动手实操。很多年总刷题数量还是178。周末拿剑指offer过一遍再
  • 目标2: 11月20号完成二刷,认真模式,画图,讲解,复杂度,测试都按模拟面试来一遍
    • 给定目标一个月,继续科学刷题。所谓科学就是注意节奏,注意总结
    • 一定要自己画图,把过程了解清晰了
  • 目标3: 12月31号完成Top100一刷

明细

  • 刷题100道
  • ML基础回顾一遍
  • 项目重新review
  • 准备一些BQ问题
  • 推荐系统概要
  • kaggle比赛轻度

2024 一月计划

  • blind128 非常熟练的程度,保证今后遇到的能做出来
    • 22-24
  • NLP: 完成retrievals内容,复现LLM,LECR, AIcoding内容
    • 19-20, 21-22, 7-8
  • LLM: 完成sft, rag内容, 读transformers代码
    • day time

二月计划

  • 整体的leetcode [-280题]
  • retrievals结构: 25号release 0.0.1
  • 推荐系统整体设计

二月计划: 10D

  • lc目标: 10 x 10
  • retrievals目标: lecr x llm
  • llm目标:sft x rag

2024春季天计划

  • +每天3道新题 一定要完成
序号日期评论
10213BFS+拓扑,阅读完FlagE结构
20214string + stack + queue
20215dynamic programming
20216greedy
20217小结, +推荐系统架构
20218LLM + retrievals架构

三月计划

  • 刷题量搞上去 [-400题]
  • 推荐系统
  • 大模型+example demo: 15号RAG 项目

三月计划

  • lc目标: 2 新 + 4 老
  • retrievals目标: lecr x llm,lecr x4, trainer of cosine and triplet -> 15号
  • llm目标:retrievasl + rag
  • 推荐:KDD跑一跑 + youtube

四月计划

  • 高频题熟练 [-430题: 至少300+medium, 50+hard]
  • 推荐系统blog、论文、比赛
  • NLP: LLM+Transformer基本成型

五月

  • 刷题 [高频+题量,-500题]
  • MLE 系统设计
  • BQ

其他

Curated-List-of-Top-75-LeetCode-Questions-to-Save-Your-Time-OaM1orEU

列表

二叉树:

剑指offer

Remove Duplicates from Sorted Array

Given a sorted array, remove the duplicates in place such that each element appear only once and return the new length.

Do not allocate extra space for another array, you must do this in place with constant memory.

For example, Given input array A = [1,1,2],

Your function should return length = 2, and A is now [1,2].

排序而且有重复,那么

  • 记录下一个不重复的数值的位置,并自动向后移
  • 找到其中新的不重复数值。或者单独一个值记录,或者根据前后是否发生变化

Remove Duplicates from Sorted Array II

Follow up for "Remove Duplicates": What if duplicates are allowed at most twice?

For example, given sorted array A = [1,1,1,2,2,3], your function should return length = 5, and A is now [1,1,2,2,3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YueTann

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值