![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
q1n2hen
这个作者很懒,什么都没留下…
展开
-
避免递归中的重复计算
原本的斐波那契递归:int Fib_1(int n) //斐波那契数列默认从1开始,所以结果是1,1,2,3,5,8,..{ if(n<=1) { return 1; } else { return Fib_1(n-2)+Fib_1(n-1); }}但是在多次计算后重复的值仍然重复计算。为了加快计算速度,采用添加一个数组保存之前重复出现的递归结果的原创 2017-02-11 22:00:42 · 1253 阅读 · 0 评论 -
LCA最近公共父节点离线算法
转自http://www.cnblogs.com/JVxie/p/4854719.html首先是最近公共祖先的概念(什么是最近公共祖先?): 在一棵没有环的树上,每个节点肯定有其父亲节点和祖先节点,而最近公共祖先,就是两个节点在这棵树上深度最大的公共的祖先节点。 换句话说,就是两个点在这棵树上距离最近的公共祖先节点。 所以LCA主要是用转载 2017-09-08 15:13:04 · 398 阅读 · 0 评论 -
0,NULL,nullptr区别
C的NULL在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码:int *i = NULL;foo_t *f = NULL;实际上在C语言中,NULL通常被定义为如下:#define NULL ((void *)0)也就是说NULL实际上是一个void *的指针,然后吧void *指针赋值给int *和foo_t *的指针的时候,隐式转载 2017-09-07 21:59:52 · 273 阅读 · 0 评论 -
static_cast、dynamic_cast、const_cast和reinterpret_cast总结
转载自:http://www.jellythink.com/archives/205前言这篇文章总结的是C++中的类型转换,这些小的知识点,有的时候,自己不是很注意,但是在实际开发中确实经常使用的。俗话说的好,不懂自己写的代码的程序员,不是好的程序员;如果一个程序员对于自己写的代码都不懂,只是知道一昧的的去使用,终有一天,你会迷失你自己的。C++中的类型转换分为两种转载 2017-09-15 17:34:02 · 3322 阅读 · 0 评论 -
马拉车算法
做到最大子回文字符串看到的一个算法。所以记一下。Manacher‘s Algorithm这个算法是用来统计最长线性回文字符串的。他先把字符串中间和两端分别插入了一个#,/*这样处理之后对于字符串无论奇数偶数的处理方法都是一样的了(我的理解)*/。建立一个array,size为处理后的string大小。对应的每个array[i]为以其为中点最大的半径r//若为1则为其自身。Eg:原创 2017-08-23 15:45:43 · 504 阅读 · 0 评论 -
死锁及解决办法
进程死锁及解决办法操作系统 2009-09-24 16:48:58 阅读767 评论1 字号:大中小 订阅 一、要点提示(1) 掌握死锁的概念和产生死锁的根本原因。(2) 理解产生死锁的必要条件--以下四个条件同时具备:互斥条件、不可抢占条件、占有且申请条件、循环等待条件。(3) 记住解决死锁的一般方法,掌握死锁的预防和死锁的避免二者的基本思想。(4) 掌握死锁转载 2017-08-15 22:58:02 · 249 阅读 · 0 评论 -
进程调度--CFS
之前看情景分析,调度是用的时间片的方式,但是看2.6源码的时候发现不是那么回事。。。后来又看了Linux内核分析才知道时间片的方法给淘汰了.............. Linux2.6.24内核采用分层的思想管理调度。可以看作两层,第一层被称为核心调度器,在核心调度器下面为调度器类。在调度器被调用时,它会查询调 度器类,得知接下来运行哪个进程。内核支持不同的调度策略(完全公平调度和实时调度等)转载 2017-08-17 00:28:36 · 182 阅读 · 0 评论 -
do...while(0)...
原文地址:http://www.spongeliu.com/415.html觉得有意义就转了。。linux内核和其他一些开源的代码中,经常会遇到这样的代码:do{ ...}while(0)这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢?实际上,do{...}while(0)的作转载 2017-07-10 22:45:12 · 160 阅读 · 0 评论 -
c++ 宏
记录一些宏的用法。。。1.防止多重包含。eg: #ifdef _XXX_H#define _XXX_H/*....*/#endif很明白,就是防止多重引用include。。。2.条件编译#ifdef _EXAMPLE...#endif如果定义了EXAMPLE宏 ,...部分就会被编译,否者不编译3.宏替换#define NUM原创 2017-06-28 22:48:17 · 201 阅读 · 0 评论 -
ZZL
转载一篇关于字符串匹配算法ZZL的论文, 图片有点问题,将就着看吧,这个算法其实很简单!就是先统计特征串的首字符在主串中中的位置,然后每次匹配都是从存储的位置开始。在平摊意义下,还是很有效果的。 字号:大 中 小一种可做特殊用途的字符串匹配算法纪福全 朱战立(西安石油大学计算机学院,西安 710065) 摘 要 现有的字符串匹配算法按照模式串从左至右或从右至转载 2017-10-16 21:40:27 · 1210 阅读 · 0 评论