算法学习笔记

1. 动态规划

动态规划要考虑状态表示和状态计算,状态的表示分为属性和转移,计算就是实际的状态转移方程。

在考虑这种问题的时候关键考虑我们是想要什么,比如想要从0到n的最优,那可能的方法就是从0到k的最优,到k+1的最优,直到到n的最优。

2.归并排序

归并排序是把大的排序划分成两个等大的小的排序,在排序大的时候假设小的已经排序好了,使用了递归的方法来解决分解问题的思路,同时因为每次都是二分,这样问题不会出现退化成没有优化效果的逐个排序。

3.广度优先搜索

广度优先搜索一般是用队列采用先进先出的方法逐层的访问,这个比较有特点,深度优先搜索本质上是用栈,不过大多数情况下利用递归,实际上是利用了内存提供的栈,仍然是在用栈实现。

4.双指针

双指针可以解决的一种问题,比如窗口的问题,一个指向窗口的尾部一个指向窗口初始位置,在不符合条件的时候移动后面的指针,快慢指针解决的问题还有比如链表里的一些问题。

5.vector和int*的区别

数组和vector的区别是vector可以动态的变化,可以设置非常量个的,对于数组往往得自己写一个const int N

6.优先队列

使用优先队列,最小优先和最大优先可以获得最大的k个数和最小的k个数,priority_queue。

相关推荐
xqqxqxxq3 小时前
技术笔记:上下文工程(Context Engineering)心得总结(李博杰《深入理解 AI Agent》2.1,2.2观后总结)
人工智能·笔记
青山木6 小时前
Hot 100 ---腐烂的橘子
java·数据结构·后端·算法·leetcode·广度优先
未来之窗软件服务6 小时前
计算机考试-快速排序—东方仙盟
数据结构·算法·排序算法·仙盟创梦ide·东方仙盟
小龙报6 小时前
【优选算法】1. 水果成蓝 2.找到字符串中所有字母的异位词
java·c语言·数据结构·数据库·c++·redis·算法
一只小菜鸡..7 小时前
南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
笔记·学习
txzrxz7 小时前
数论:排列数、组合数、费马小定理、逆元、同余定理
c++·算法·数论·组合数·费马小定理·逆元·排列数
xqqxqxxq7 小时前
LeetCode Hot100 双指针专项题解笔记
笔记·算法·leetcode
懿路向前7 小时前
【HarmonyOS学习笔记】2026-07-24 | textProcessing 实体识别与踩坑实录
笔记·学习·边缘计算·harmonyos
闪电悠米7 小时前
力扣hot100-54.螺旋矩阵-模拟边界控制详解
算法·leetcode·矩阵
变量未定义~7 小时前
虚拟节点-星石传送阵(4星)、强连通分量
数据结构·算法