笔/面试准备
手撕代码两方面:核心代码模式,ACM(全部代码模式)
面试时间:2025/6/6 开始准备时间:5/29
看过的题目总结
5/29
-
求1~n这n个数的最小公倍数。
-
思路:
lcm[i] = LCM(lcm[i-1], i),算是动态规划。 -
核心实现:
-
给定一个点O和n个点的坐标,求n个点中距离O最近的m的个点。
-
思路:依次求出各个点与O的距离,加入大小为m的最大堆。前m个点一定在堆中,之后每个比当前堆顶元素(堆中最大元素)小的距离,用它替换堆顶元素并perculate down。
-
分隔回文串: 给你一个字符串 s,请你将 s 分割成一些 子串,使每个子串都是 回文串 。
- 返回 s 所有可能的分割方案。
- 思路:回溯
- 返回符合要求的 最少分割次数 。
- 思路:DP方程: [ f(n)=\begin{cases} f(n-1) + 1 &\text{如果s[n]不与前面字符回文}\ min(f(n-1), f(i-1))+1 &\text{如果s[i]~s[n]形成回文} \end{cases} ] 其中s[i]表示s中第i个字符,f(n)表示从第一个字符开始长度为n的字符串中,分割出的最少回文串数。f(0)=0,f(1)=1
- 返回 s 所有可能的分割方案。