- 博客(15)
- 收藏
- 关注
原创 设计模式三
四、结构型1. 适配器(Adapter)Intent把一个类接口转换成另一个用户需要的接口。Implementation鸭子(Duck)和火鸡(Turkey)拥有不同的叫声,Duck 的叫声调用 quack() 方法,而 Turkey 调用 gobble() 方法。要求将 Turkey 的 gobble() 方法适配成 Duck 的 quack() 方法,从而让火鸡冒充...
2019-03-21 22:37:21
166
原创 设计模式二
三、行为型1. 责任链(Chain Of Responsibility)Intent使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链发送该请求,直到有一个对象处理它为止。Class DiagramHandler:定义处理请求的接口,并且实现后继链(successor)Implementationpublica...
2019-03-21 22:36:36
209
原创 设计模式的简单梳理
模式设计1、单例模式一、单例模式定义:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。二、单例模式特点:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例类必须给所有其他对象提供这一实例。单例模式保证了全局对象的唯一性,比如系统启动读取配置文件就需要单例保证配置的一致性。使用一个私有构造函数、一个私有静态变量以及一个公有静态函数...
2019-03-21 22:35:15
207
原创 红黑树
红黑树是一种自平衡的二叉查找树它具有以下4个性质:1、节点颜色必须是红色或者黑色2、根节点是黑色3、每个红色节点的两个子节点都是黑色4、从任一节点到每个叶子的所有路径都包含数目相同的黑色节点了解完红黑树的基本性质,我们就开始插入数据,为了防止违反性质5,所以我们插入的数据都是为红色。插入数据情况基本就是这样,总结一下:1、如果插入的节点,父节点为,叔叔节点(插...
2019-03-21 22:22:36
122
原创 平衡二叉树的旋转操作
平衡二叉树的定义:任意的左右子树高度差的绝对值不超过1,将这样的二叉树称为平衡二叉树,二叉平衡树前提是一个二叉排序树。(1)LL:插入一个新节点到根节点的左子树(Left)的左子树(Left),导致根节点的平衡因子由1变为2(2)RR:插入一个新节点到根节点的右子树(Right)的右子树(Right),导致根节点的平衡因子由-1变为-2(3)LR:插入一个新节点到根节点的左子树(L...
2019-03-21 21:36:26
515
原创 协同过滤推荐算法
最近做的东西里面需要根据用户历史信息,来分析与该用户兴趣相同的其他用户,继而以此为基础推荐该用户可能感兴趣的其他课程;实现思路是定义一个Entry,Map<String, Map<String, Integer>> userPerfMap = new HashMap<String, Map<String, Integer>>();;键是用户名,值...
2019-03-21 21:26:28
357
原创 素数环
#include#include #includeusing namespace std;int n,a[20],vis[20];int isp(int n){if(nreturn 0;for(int i=2;i*i{if(n%i==0)return 0;}return 1;} void dfs(int cur)
2017-03-27 13:50:02
318
原创 八皇后问题(回溯法)
#include#includeusing namespace std;int tot;int n; int c[100];void search(int cur){if(cur==n){tot++;}else for(int i=0;i{int ok=1;c[cur]=i;//尝试把第cur行的皇后放在第i列
2017-03-27 13:14:54
415
原创 UVa11988
#include#includeconst int maxn=100000+5;int last,cur,next[maxn];//用next[]来存放s[]中字符变动后,按照正确顺序应输出的字符所对应的下标,字符的移动实际上是next【】中所存放的s【】的下标的移动 char s[maxn];//用s【】来存放输入的字符串, 并不做任何变动 //cu
2017-03-07 14:01:16
1104
原创 UVa442
#include#include#include#includeusing namespace std;struct Matrix{int a;int b;Matrix(int a=0,int b=0):a(a),b(b){}}m[26];stack s;int main(){int n;cin>>n;fo
2017-03-06 15:07:04
524
原创 UVa442
#include#include#include#includeusing namespace std;struct Matrix{int a;int b;Matrix(int a=0,int b=0):a(a),b(b){}}m[26];stack s;int main(){int n;cin>>n;fo
2017-03-06 15:05:09
396
转载 UVa540
#include #include #include using namespace std; const int maxt = 1000 + 10; int main() { int t, kase = 0; while(scanf("%d", &t) == 1 && t) { printf("Scenario
2017-03-02 10:59:43
396
转载 团队队列
#include #include #include using namespace std; const int maxt = 1000 + 10; int main() { int t, kase = 0; while(scanf("%d", &t) == 1 && t) { printf("Scenario
2017-03-02 10:56:30
646
原创 UVa201
//#include #include //#include //#include #include //#include using namespace std; //代码中有注释部分是对scanf和cin在读取空格上的不同处的应用(这是一开始我自己忽略的部分,所以特意整理了一下)/*(1) 当 scanf 中的输入格式说明符 (F
2017-01-13 13:27:34
552
原创 刽子手游戏
char s[100],s2[100];int win,lose;int left;int chance;void guess(char ch){int bad=1;for(int i=0;i{if(s[i]==ch){left--;bad=0;s[i]=' ';}}if(bad==1)--chance;if(!chance)
2017-01-10 20:02:45
529
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人