面试考察率100%的算法题,都给你整理好了(包含PDF已开放下载)

本文总结了面试中常见的算法题型,包括相向双指针、二分法、宽度优先搜索、二叉树与分治法、深度优先搜索、坐标型和背包型动态规划。详细介绍了每种算法的解题思路、复杂度和代码模板,帮助求职者应对面试中的算法挑战。
摘要由CSDN通过智能技术生成

之前和同为面试官的朋友闲聊的时候发现,有些求职者嘴上红黑树、KMP头头是道,项目经历看上去也是buff拉满,结果就面一道LRU,写半天还是个错的。

只能说想捞都捞不动!!!

作为面试官在校招/社招面了50多场,可以很负责任地告诉大家,考到二分法,双指针,字符串,动规这类题,都是真心想捞你...

而且考点都没啥变化,最多也就是题型会做出一点变化,针对这类经典算法我只能说两个字:

v2-a302cd440fe78953243c9791213b4447_b.jpg

这里也大方分享几招,供大家参考学习:

1、面试中的高频算法:“相向双指针”举例

v2-3bcd5dc3bde80364eeedad3e5586ac6b_b.jpg

相向双指针参考题型:

和大于S的最小子数组

两数之和VII(同向双指针)

和相同的二元子数组(相向双指针)

最长回文串(背向双指针)

合并有序数组

通用解题思路

使用条件

滑动窗口(90%)

时间复杂度 O(n) (80%是双指针)

要求原地操作,只可以使用交换,不能使用额外空间(80%)

有子数组 subarray / 字符串 substring 的关键词 (50%)

有回文 Palindrome 关键词(50%)

复杂度

时间复杂度: O(n)

  • 时间复杂度与最内层循环主体的执行次数有关
  • 与有多少重循环无关

空间复杂度: O(1)

只需要分配两个指针的额外内存

代码模板

Java代码模板

v2-d4438fa199616bfa3352102d4b0a0764_b.jpg


Python代码模板

v2-9d592011e92ab1761558f99b69a8a7c5_b.jpg

背好模板,在面试中再遇到双指针类似的题就基本不会出错了,其他常考知识点也一样。感兴趣的朋友可以si我

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值