面试算法-常用数据结构

文章目录

1)算法和数据结构

2)判断候选人的标准

  • 算法能力能够准确辨别一个程序员的功底是否扎实

数据结构

数组

链表

优点:

1)O(1)时间删除或者添加

灵活分配内存空间

缺点:

2)查询需要O(n) 时间

解题技巧:

1)利用快慢指针

2)构建一个虚假的链表头

如何训练技巧:

1)在纸上或者白班上画出节点之间的相互关系

2)画出修改的方法

特点:后进先出(LIFO)

算法基本思想:

1)可以用一个单链表来实现

2)只关心上一次的操作

3)处理完上一次操作后,能在O(1)时间内查找到更前一次的操作

队列

特点:先进先出(FIFO)

常用场景:

广度优先搜索算法

双端队列

基本实现:

1)可以利用一个双链表

2)队列的头部和尾部都能在O(1)的时间内进行数据的查看,添加和删除

常用场景:

实现一个长度动态变化的窗口或者连续区间

树的共性:

1)结构直观

2)通过树问题来考察 递归算法掌握的熟练程度

面试中常考的树的形状有

1)普通二叉树

2)平衡二叉树

3)完全二叉树

4)二叉搜索树 (重点)

5)四叉树

6)多茶树

特殊的树:红黑树,自平衡二叉树

遍历:(递归和非递归)+ 分析时间复杂度

前序遍历

中序遍历

后续遍历

二叉搜索树的中序遍历:是从小到大排序好的

相关推荐
Tisfy7 分钟前
LeetCode 2483.商店的最少代价:两次遍历 -> 一次遍历
算法·leetcode·题解·遍历
集芯微电科技有限公司11 分钟前
DC-DC|40V/10A大电流高效率升压恒压控制器
c语言·数据结构·单片机·嵌入式硬件·fpga开发
C雨后彩虹14 分钟前
HashMap的线程安全问题:原因分析与解决方案
java·数据结构·哈希算法·集合·hashmap
YGGP17 分钟前
【Golang】LeetCode 279. 完全平方数
算法·leetcode
im_AMBER23 分钟前
Leetcode 87 等价多米诺骨牌对的数量
数据结构·笔记·学习·算法·leetcode
月明长歌33 分钟前
【码道初阶】Leetcode771 宝石与石头:Set 判成员 vs List 判成员(同题两种写法的差距)
java·数据结构·leetcode·list·哈希算法·散列表
import_random34 分钟前
[算法]时间序列(介绍)
算法
wuk99837 分钟前
MATLAB中求解和分析马蒂厄方程
人工智能·算法·matlab
Wang201220131 小时前
LSTM和Transformer对比
人工智能·算法·架构
9号达人1 小时前
支付配置时好时坏?异步方法里的对象引用坑
java·后端·面试