Java基础
1.容器*
2.图
2.1存储方式*
无所谓性能:邻接矩阵(数组)
高校存储:邻接表(链表)
2.2遍历方式*
BFS广度优先遍历:利用队列,用来求非带权单源最短路径
DFS深度优先遍历:递归
2.3最小生成树(求最少边的连通子树)
Prim
Kruskal
2.4最短路径*
djkstra:正权值有向图
3.4.1 Floyd
- 正负有无向图,但不能有带负权值的回路
- 思路:用邻接矩阵表示初始的距离,每两点的距离都是直连距离,连自己为0,无连线的为无穷大;每次找中转站,如果加入了中转站距离变短,那么两点之间的距离就更新。
- 材料:三重循环、2个二维数组
- 易错点:无穷大的那个数字设置得不对
3.DP(动态规划)
状态压缩DP
普通DP:暴力递归(容易超时),用数组保留中间结果进行DP,滚动数组(空间复杂度很低)
根据目前做过的题目来看,动态规划一般是求最好的结果的问题、从前往后推的问题(用树可以表示)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现