算法与数据结构笔记
2015-09-18 16:02
288 查看
1. 求两个数的最大公约数: 辗转相除法
2. 求一个数的质因数分解:短除法
3.next数组的求解方法:
next数组下标从1开始计算
next[1] 肯定是 0
next[2] 肯定是 1
next
的情况,将前面n-1个字符,计算从首尾开始组成最大的相同子串的长度,如果找到,那么next值是该长度加1,否则next值是1。
举例
next[6]的计算,字符串第六位是 a ,( ababa a ababaa)
将前面的5个字符,从头尾开始取4个组成子串比较,如果不相等,则从首尾取3个字符组成子串继续比较,并以此类推, 如果一直比较到最后一个字符都不相等,那么该next值为1。
4个字符的情况:abab : baba
3个字符的情况:aba : aba 此时相等,那么next[6] = 3+1 = 4
4.n个数进栈,可能的出栈顺序有多少种?
卡塔兰数,
int gcd(int x,int y){ if(y==0) return x; else return gcd(y,x%y); }
2. 求一个数的质因数分解:短除法
void f(int x){ while(x>1) { for(int i=2;i<x;++i){ if(x%i==0) { cout<<i<<endl; x=x/i; break; } } } }
3.next数组的求解方法:
next数组下标从1开始计算
next[1] 肯定是 0
next[2] 肯定是 1
next
的情况,将前面n-1个字符,计算从首尾开始组成最大的相同子串的长度,如果找到,那么next值是该长度加1,否则next值是1。
举例
next[6]的计算,字符串第六位是 a ,( ababa a ababaa)
将前面的5个字符,从头尾开始取4个组成子串比较,如果不相等,则从首尾取3个字符组成子串继续比较,并以此类推, 如果一直比较到最后一个字符都不相等,那么该next值为1。
4个字符的情况:abab : baba
3个字符的情况:aba : aba 此时相等,那么next[6] = 3+1 = 4
4.n个数进栈,可能的出栈顺序有多少种?
卡塔兰数,
相关文章推荐
- 数据结构学习4--树(一)
- Libevent数据结构分析
- 从B树、B+树、B*树谈到R 树
- 数据结构 list map set
- 栈的应用-迷宫问题-数据结构
- 关于数据结构的学习经验分享 (二叉树相关的内容)
- soj.1003 hit or miss
- 二叉查找树及遍历算法
- 数据结构中的常用查找
- 数据结构实验二:双向链表
- 数据结构之快速排序
- 数据结构实验二:循环链表
- 数据结构实验二:单链表
- 【数据结构】线性表的链式存储结构--单链表
- 数据结构分类
- 项目4--顺序表应用 问题二
- 第三周 线性表(-)--顺序表 项目四--顺序表的应用 问题一
- 第3周SHH数据结构—【项目1-顺序表的基本运算】
- 第三周 项目3-单链表应用
- 二叉树的性质