目录 1、前缀和 2、前缀和算法有什么好处? 3、二维前缀和 4、差分 5、一维差分 6、二维差分 1、前缀和 前缀和是指某序列的前n项和,可以把它理解为数学上的数列的前n项和,而差分可以看成前缀和的逆运算。合理的使用前…
分类:算法笔记
排列组合(密码本)-求指定个数的字母或数字的的任意排列组合
最近要做一个密码本,列出所有电话号码的可能组合 也就是指定个数的数字的所有组合 比如(0, 1, 2) 列出这三个数字的任意组合,组合长度为3: 000,001,002,100,101,102….. 需要一个…
算法笔记(三)——二分查找(超详细,附带模板)
未来属于那些…
计算平均数
计算平均数,依次输入,直到输入-1时,就结束,计算平均数。 代码一: //算平均数 #include<stdio.h> int main(){ int number,sum=0,count=0; do{ sc…
排序算法及其时间复杂度
1. 排序算法时间复杂度 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太…
《算法笔记》——迷宫最短路问题(BFS)
题目大意:给定一个大小为N*M的迷宫。迷宫由通道(.)和墙壁(#)组成,每一步可以向邻接的上下左右四个通道方向移动。求出从起点(S)到终点(G)的最少步数。 思路:从起点开始,定义一个数组d记录可以走的路径…
《算法笔记》——POJ1321-棋盘问题
题目链接:https://vjudge.net/problem/POJ-1321 思路一:首先我们可以明确这是一个深度搜索的题目,与八皇后问题相似。我们建立一个函数DFS用来累计可行的方案数,我们走过一列我…
《算法笔记》——DFS、BFS实现
以下是基于图的链表表示的dfs和bfs的演示: 按照链表表示输入以下数据: 8 0 1 2 8 1 0 3 4 8 2 0 5 6 8 3 1 7 8 4 1 7 8 5 2 7 8 6 2 7 8 7 3…
《算法笔记》——背包问题
背包问题是动态规划算法的一个典型实例,首先介绍动态规划算法: 动态规划: 基本思想: 动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中, 可能会有很多可行解。没一个解都对应于一个值,我们希望找到具有最优值的解…
《算法笔记》——归并排序
归并操作: 归并操作,也叫归并算法,指的是将两个顺序序列合并成一个顺序序列的方法,平均时间复杂度为O(nlogn)。 归…
《算法笔记》——快速排序算法
快速排序的思想: 通过一趟排序将要排序的数据分割成两个独立的部分,以选取的关键字为分界线(关键字一般选取第一个要排序的元素)。其中一部分的所有数据都比另外一部分的所…