上一页 1 ··· 4 5 6 7 8 9 10 11 下一页
摘要: 前言 根据分类, 图的搜索分类 可以分为 BFS和DFS 记忆化搜索(基于深搜) 双向广搜 二分状态搜索 启发式搜索 与或树搜索 博弈树搜索(α β剪枝)(极大极小过程搜索) A 搜索 IDA搜索 先看BFS和DFS,因为这是最基础的搜索策略了,BFS是按照深度进行搜索,DFS则是按照广度进行搜索; 阅读全文
posted @ 2017-02-15 06:36 banananana 阅读(31128) 评论(0) 推荐(0) 编辑
摘要: 简介 当一棵二叉树的每个结点都大于它的两个子结点时,被称为堆有序; 如果我们用指针来表示堆有序的二叉树,那么每个元素都需要三个指针来找到它的上下结点;但是如果我们使用完全二叉树,只用数组而不需要指针就可以表示; 什么是最小堆呢? 最小堆就是在二叉堆的基础上,符合了每个结点都比他的子结点要小的规则! 阅读全文
posted @ 2017-02-15 06:35 banananana 阅读(12093) 评论(0) 推荐(1) 编辑
摘要: 数据结构 栈,队列,链表 哈希表,哈希数组 堆,优先队列 双端队列 可并堆 左偏堆 二叉查找树 Treap 伸展树 并查集 集合计数问题 二分图的识别 平衡二叉树 二叉排序树 线段树 一维线段树 二维线段树 树状数组 一维树状数组 N维树状数组 字典树 后缀数组,后缀树 块状链表 哈夫曼树 桶,跳跃 阅读全文
posted @ 2017-02-15 06:34 banananana 阅读(1084) 评论(0) 推荐(0) 编辑
摘要: 来源 在没有BM算法时,其原始算法是从后往前进行匹配,需要两层循环,判断以某个字符为结尾的子串是否和模式串相等,这种算法也称作暴搜; 贴上代码: cpp void preBmBc(string x, vector& bmBc) { int i = 0; int len = (int)x.size() 阅读全文
posted @ 2017-02-15 06:33 banananana 阅读(12565) 评论(1) 推荐(0) 编辑
摘要: AVL树理解 简介 我们知道,AVL树也是平衡树中的一种,是自带平衡条件的二叉树,始终都在维护树的高度,保持着树的高度为logN,同时把 插入、查找、删除 一个结点的时间复杂度的最好和最坏情况都维持在 O(logN) ;增加和删除需要通过一次或者多次的树旋转来重新平衡这棵树。 其中规定每个结点的左子 阅读全文
posted @ 2017-02-15 06:33 banananana 阅读(352) 评论(0) 推荐(0) 编辑
摘要: 简介 类型转换的安全问题是需要考虑的重点: 1. 首先是类型的窄化转化,导致数据的丢失; 2. 接着是在类继承链中,将父亲对象的地址(指针)强制转换为子类的地址(指针),这就是所谓的下行转换,“下”表示沿着继承链往下走(子类的方向);反之上行转换,“上”表示沿着继承链往上走(父类的方向); 我们知道 阅读全文
posted @ 2017-02-15 06:32 banananana 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 前言 C++ 的内存管理一直以来都是比较困难的问题,倒不至于说特别难,而是说注意的东西有很多,知识点也很多,新版本的C++11使用了引用计数,可以动态的进行内存管理,帮助程序员减少了一些工作,使用起来会更简单一些;但是毫无疑问,我们要去理解动态内存! <! more 内存管理 内存分配方式 这个是老 阅读全文
posted @ 2017-02-15 06:31 banananana 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 简介 在C++ Primer中,是这样定义的 一个lambda表达式表示一个可调用的代码单元,可以将其理解为一个未命名的内联函数;与任何函数类似,一个lambda具有一个返回类型,一个参数列表和一个函数体,但和函数不同,lambda可能定义在函数内部。 形式 表达式规范如下: 其中 (1) 是完整的 阅读全文
posted @ 2017-02-15 06:30 banananana 阅读(404) 评论(0) 推荐(0) 编辑
摘要: 前言 在使用面向对象的时候,发现使用new和不使用new创建的对象区别还是蛮大的,做个总结; <! more 总结 new创建的是一个指向类对象的指针,需要指针进行接收,一处初始化,多处使用,但是不用new创建的话不需要指针,其创建的是一个类对象; new创建一个实例对象,并且指针指向该对象,作用域 阅读全文
posted @ 2017-02-15 06:30 banananana 阅读(853) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在看C++ Primer的时候,对于对象移动一直不太懂,所以在查找各种资料,仔细研究代码后,打算写篇博客记录下来,果然还是不要得过且过,看见不懂的就查,弄懂为止最好了。 <! more 对象移动 很多时候都会发生对象拷贝,但是拷贝有个问题,对于有些仅仅做完拷贝就销毁的情况,其实没必要,更好 阅读全文
posted @ 2017-02-15 06:29 banananana 阅读(1126) 评论(0) 推荐(0) 编辑
摘要: 题意 Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, ret 阅读全文
posted @ 2017-02-15 06:26 banananana 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 之前只是在C++ Primer里面看过关联容器,可能因为没有实际用过,只是看看,所以导致用的时候并不熟悉; 在这之前,map和set的特性应该要了解,map是关联数组,也就是由键值对组成的,而set只是关键字的集合,但是两者都只允许关键字是唯一的,也就是对于一个给定的关键字,它只能允许一个元素的关键 阅读全文
posted @ 2017-02-15 06:25 banananana 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 题意 Remove the minimum number of invalid parentheses in order to make the input string valid. Return all possible results. Note: The input string may c 阅读全文
posted @ 2017-02-15 06:24 banananana 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 简介 splay tree其实就是不停的旋转,没进行一个操作都要进行旋转;例如,当访问某一个结点的时候,会通过旋转其结点使得该结点变为树根,这样保证其的平均复杂度为O(nlogn); 其的操作包括: 查找: 如果查找成功(找到的话),那么由于伸展操作,被查找的结点成为新的树根;但是如果查找失败的话( 阅读全文
posted @ 2017-02-15 06:22 banananana 阅读(560) 评论(0) 推荐(0) 编辑
摘要: Subsets 题目 Given a set of distinct integers, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. For example 阅读全文
posted @ 2017-02-15 06:21 banananana 阅读(550) 评论(0) 推荐(0) 编辑
摘要: 前言 Trie树又称单词查找树,字典树,是哈希树的变种; 优点在于:最大限度地减少无谓的字符串比较,查询效率比哈希高; 缺点在于:空间消耗很大; 性质 其基本性质可以归纳为: 1. 跟结点不包括字符,除跟结点以外,每个结点只包含一个字符; 2. 从跟结点到某一个结点,路径上经过的字符连接起来,为该结 阅读全文
posted @ 2017-02-15 06:19 banananana 阅读(291) 评论(0) 推荐(0) 编辑
摘要: title: Treap树理解 comments: true date: 2016 10 06 07:57:37 categories: 算法 tags: Treap树 树 Treap树理解 简介 随机平衡二叉查找树 Treap树其实就是BST+Heap,在值的比较上,按照二叉树的性质,在优先度的比 阅读全文
posted @ 2017-02-15 06:19 banananana 阅读(472) 评论(0) 推荐(0) 编辑
摘要: title: Trie树之C++实现 comments: true date: 2016 10 02 16:59:54 categories: 算法 tags: Trie树 前言 之前写了一篇偏向于理解Trie的文章- "Trie树理解" 和前面那篇文章不同的是,这一篇文章记录着Trie树的 C++ 阅读全文
posted @ 2017-02-15 06:18 banananana 阅读(549) 评论(0) 推荐(0) 编辑
摘要: title: word ladder总结 categories: LeetCode tags: 算法 LeetCode comments: true date: 2016 10 16 09:42:30 题意 Given two words (beginWord and endWord), and a 阅读全文
posted @ 2017-02-15 06:17 banananana 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 前言 Javasript是一个比较危险的语言,纯属个人感觉,可能是比较简单,所以并不会那么去注意这一门语言的特性,我记得有专家说过,如果学习一门语言,回首先从它的特性开始学习。 对象 对象是属性的容器,其中每个属性都拥有名字和值,属性的名字可以是包括空字符串在内的任意字符串;属性值可以是除undef 阅读全文
posted @ 2017-02-14 08:20 banananana 阅读(183) 评论(0) 推荐(0) 编辑
上一页 1 ··· 4 5 6 7 8 9 10 11 下一页