- 博客(17)
- 收藏
- 关注
原创 leetcode96三种解法(1.暴力搜索法,2.记忆化搜素,3.动态规划)
题目描述如下图:计算不同的二叉搜索树个数,如果有小伙伴对二叉搜索树不太清楚,建议去了解一下二叉搜索树是个什么东东,详细见如下博客:https://blog.youkuaiyun.com/qq_41836269/article/details/90402989如果有问题,欢迎小伙伴指出哈。分析:思路:1~n中的每一个数字都可以作为树的根节点,如果能求出以1~n中每一个数字为根节点的不同二叉搜索树...
2019-05-22 16:23:37
963
原创 二叉搜索树基本原理与C语言实现
1:二叉搜索树的客观认识 二叉搜索树又称二叉排序树,即对一棵树按照中序遍历之后,每个节点的属性值是按照顺序排列的,如下图:对上图的树按照中序遍历得到的属性值依次为(2,5,5,6,7,8),可以发现得到的属性值是按照从小到大排序的。2:二叉搜索树的性质 对于二叉搜索树的每一个节点,如果它的左孩子不为NULL,那么它左孩子的属性值 <= 它的属性值;如果右孩...
2019-05-21 12:21:19
385
1
原创 leetcode198.打家劫舍
这个题是动态规划的典型题,这题的其它解法很简单。既然是动态规划,很多情况下就是路径在几种状态之间来回变化,在这种情况下我们介绍一种更加通用的方法:状态图的方法,这种方法在很多的课程都有过介绍,同时也是编程的一种技巧。状态图法有两点:1.状态,2.动作。我们要先寻找这个问题的动作,然后根据动作确定状态。1.确定这个题的动作,偷和不偷2.根据偷和不偷两种动作,我们可以确定有两个状态s0(偷...
2019-05-07 19:48:31
193
原创 使用sklearn preprocessing进行数据预处理
在机器学习中,我们尽量的把数据转成均值为0,方差为1满足高斯分布的数据,这样的好处使得数据比较均衡,算法不会因为某一个奇异的数据值而更偏向某一个数据。但是实际的情况中,我们通常不会太多的考虑数据的分布情况,而是通过均值集中数据,然后除以他们的标准差。一.标准化,减均值,按照方差等比缩放 数据的标准化:当个体的特征明显不服从正态分布时,标准化表现的结果比较差。实际操作中,经常忽略数据的...
2019-05-03 18:10:31
459
原创 C++结构体的成员变量初始化,以及结构体的构造和析构函数
C和C++中的结构体不同:以下测试均在vs2010,作者水平有限,有误请指出。1.C++对struct关键字进行了增强:如下代码struct info{ int a;};int main(int argc,char *argv[]){ info data;//在c中这样定义变量编译通不过,必须要加上struct,而在c++中这样是允许的 return 0;}2.C+...
2019-04-11 10:18:30
3520
原创 gdb调试工具指令总结(适合对gdb调试有一定了解)
1.生成gdb可调试文件:gcc a.c -o a.out -g(注意后面一定要跟上-g)2.运行调试文件:gdb a.out3.gdb调试下显示代码:list 行号,也可以简写(l 行号)4.设置断点:b 行号(b 8)5.查看断点信息:info b5.run或者r:全速执行6.打印监视变量:p 变量名7.执行下一条指令:n8.单步执行:s...
2019-03-24 15:17:42
502
原创 链式链表实现队列模型(C++模板类)
队列是一种特殊的线性表,而线性表有顺序和链式存储两种,这里只讨论单向链式链表实现的队列模型,队列遵循的原则是先进先出,因此不管以链表的头部和尾部作为队列的头部,当弹出和压入元素的时候都会设计到队列中元素的移动。这里以链表头部为队列的尾部,以链表的尾部做为队列的头部,即压入元素时采用头插法,弹出元素时采用尾出法。详细讲解参照https://www.bilibili.com/video/av279...
2019-03-17 12:43:08
567
原创 链式链表实现队列模型(C版本)
队列是一种特殊的线性表,而线性表有顺序和链式存储两种,这里只讨论单向链式链表实现的队列模型,队列遵循的原则是先进先出,因此不管以链表的头部和尾部作为队列的头部,当弹出和压入元素的时候都会设计到队列中元素的移动。这里以链表头部为队列的尾部,以链表的尾部做为队列的头部,即压入元素时采用头插法,弹出元素时采用尾出法。详细讲解参照https://www.bilibili.com/video/av279...
2019-03-17 12:39:41
152
原创 顺序链表实现队列模型(C++模板类)
队列是一种特殊的线性表,而线性表有顺序和链式存储两种,这里只讨论顺序链表实现队列模型,队列遵循的原则是先进先出,因此不管以数组的头部和尾部作为队列的头部,当弹出和压入元素的时候都会设计到队列中元素的移动。这里以数组的头部作为队列的头部。详细讲解参照https://www.bilibili.com/video/av27904891/?p=1本次使用工具为vs2017,作者水平有限,若有问题请...
2019-03-16 23:15:56
195
原创 链式链表实现栈模型(C++模板类)
栈满足先进后出的功能,用于在很多场景,可以发挥意想不到的功能。栈是一种特殊的线性表,因此可以通过线性链表来实现栈的功能。线性链表有顺序,和链式两种,这里选取链式链表实现栈(顺序请参考上一博客)。在链式链表实现栈模型,栈顶可以可以在链表的头部或尾部,用链表的尾部作为栈顶,入栈和出栈要遍历链表节点直到遍历到链表的尾部,过程复杂效率低下。但用链表的头部作为栈顶,入栈和出栈只用操作链表的首元素,不涉及...
2019-03-16 14:02:00
355
原创 链式链表实现栈模型(C)
栈满足先进后出的功能,用于在很多场景,可以发挥意想不到的功能。栈是一种特殊的线性表,因此可以通过线性链表来实现栈的功能。线性链表有顺序,和链式两种,这里选取链式链表实现栈(顺序请参考上一博客)。在链式链表实现栈模型,栈顶可以可以在链表的头部或尾部,用链表的尾部作为栈顶,入栈和出栈要遍历链表节点直到遍历到链表的尾部,过程复杂效率低下。但用链表的头部作为栈顶,入栈和出栈只用操作链表的首元素,不涉及...
2019-03-15 21:39:37
219
原创 顺序链表实现栈模型(C++模板类)
讲解请参考上一篇博客https://blog.youkuaiyun.com/qq_41836269/article/details/88550142代码以vs2017为工具,作者水平有限,如有问题请指出类头文件:Stack_Order_Cplus.h#pragma oncetemplate<typename T>class Stack_Order_Cplus{public...
2019-03-15 19:36:18
142
原创 顺序链表实现栈模型(C)
栈满足先进后出的功能,用于在很多场景,可以发挥意想不到的功能。栈是一种特殊的线性表,因此可以通过线性链表来实现栈的功能。线性链表有顺序,和链式两中,这里先选取顺序链表实现栈。顺序表是通过数组来实现的,因此在选择栈顶的时候可以选择数组头(a[0])和尾(a[end])作为栈底。选用数组尾为作为栈底,当压入和弹出数据时会设计到位置的计算,执行较为复杂和缓慢。因此我们选用数组头作为栈底,可以避开大量...
2019-03-14 12:03:32
168
原创 C++模板类实现带有游标的双向链表
链表只能从头结点开始访问链表中的数据元素,如果需要逆序访问单链表中的数据元素将极其低效。双链表是链表的一种,由节点组成,每个数据结点中都有两个指针,分别指向直接后继和直接前驱,带有游标的双向链表可以应用在某些特殊的场景。详细讲解参照https://www.bilibili.com/video/av27904891/?p=1本次使用工具为vs2017,作者水平有限,若有问题请指出。链表模板...
2019-03-13 16:56:32
347
原创 带有游标的双向线性链表(C版本)
单链表只能从头结点开始访问链表中的数据元素,如果需要逆序访问单链表中的数据元素将极其低效。双链表是链表的一种,由节点组成,每个数据结点中都有两个指针,分别指向直接后继和直接前驱,带有游标的双向链表可以应用在某些特殊的场景。本次例子中带有游标的双向线性链表类似Linux内核链表,利用地址重叠的特性,它可以轻松的被不同的业务节点包围,业务节点可大可小,突破了传统节点业务单一的局限。详细讲解参照ht...
2019-03-13 14:31:34
207
原创 C++模板类实现带有游标的单向循环链表
1,循环链表基于单向链表而生,单向链表的首尾相连,组成一个环状单。循环链表比单向链表多了游标这个概念,游标可以快速的访问当前结点和下一个结点。 2,循环链表在插入第一个元素的时候,需要我们将第一元素的指针域指向其自身,也就构成了循环链表。 3,循环链表在删除链表节点的时候,要注意游标,否则游标容易断开。 4,修改循环链表时候,可以将头部,尾部,非头尾三部分分开考虑。C...
2019-03-13 00:15:31
384
原创 关于free()函数经常出错的细节问题
在标准C语言中,malloc() 和 free()是一对操作,有malloc()之后要有free()释放内存。另外在C++中也有一对类似的操作new 和delete,这两对完成的功能类似,但是这两对稍稍有些不同,这些就不讨论它们的区别,只讨论free()的坑。1.free()并不是真正意思上的释放内存:free释放掉指定参数指针指向的内存,并返回void。其实,free函数只是将参数指针指...
2019-03-12 19:51:25
7354
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人