07 2017 档案
摘要:1 priority_queue C++中优先队列是一种特殊的队列,能够返回队列中优先级最大或者最小的元素,其内部是由 堆 实现的,个人认为这种方式使用更加直观。 1.1 返回vector中的最值元素 但是,有时候我们想让在内部建立一个小项堆,使用值越小的元素优先级越高,这时就可以用如下定义, 1.
阅读全文
摘要:智能指针 智能指针是当我们在使用对象时,有时会把对象的内存分配在堆上忘记释放,导致内存泄露,并且当多个指针共享同一个对象的内存时,容易出现重复释放内存,导致错误。 我们针对所需要共享的对象,手动完成一个智能指针类来代替该类别的指针,自动帮我们释放内存,共享内存。以一个共享Object类的对象数据来说
阅读全文
摘要:1 解题要点 回溯法是利用递归来求解便利一棵多叉树,其本质是深度优先搜索,通常求解的答案为树的所有叶子结点,但我们需要根据题目的要求边剪枝边遍历。 1.1 何时用回溯法求解问题 当题目中要求所有解,并且问题规模N不是很大,可以考虑使用回溯法。 1.2 常规解题步骤 以 "permutation" 为
阅读全文
摘要:1 基础巩固 链表的最基础的知识需要掌握 头插法、尾插法 及 查找中间结点。有了这些最基本操作,才能应对更复杂的题目。 1.1 尾插法 1.2 头插法 1.3 发现中间结点 2 解题技巧 2.1 DummyNode 所谓DummyNode其实就是带头结点的指针,使用DummyNode的好处时,当我们
阅读全文
摘要:1 pip install 最简单直接的方法,通过pip install安装,命令如下: 首先,需要安装 "本地用户本地的python" ,这样pip install后会安装到用户本地目录。 但是,如果系统的环境不稳定,会出现很多细节问题。如下: 1.1 安装中遇到的问题 错误1) Could no
阅读全文
摘要:1 docker的安装 首先普及一下基本概念:docker是一个系统镜像管理器,可以使用docker pull来下载网上已经打包好的特定环境的系统,这种系统称为image,将image拉下来之后,使用docker run进行运行,运行的系统实例称为容器(container)。因为docker可以封装
阅读全文
摘要:markdown入门总结 标题 在标题前加入 即可,根据 的个数分别为1~6级标题 列表 无序列表 在文字前加 即可 有序列表 在文字前加数字1.2.3. 注意符号与列表内容之间有一个空格符 引用 引用文本前加入 这是引用 图片 | Tables| Are| Cool| | |: :| :| | c
阅读全文
摘要:1 解题要点 动态归划是用来优化递归重复计算缺点的,其中主要思想是用空间换时间,即手动设置一张表格,自底向上将表格填满,从而能够将递归O(2^n)时间复杂度优化到O(n^2)或者其它幂函数级别。 1.1 何时知道该使用动态归划解决问题呢? 1) 当题目中所求解决问题为以下三种类型时,常常可以用动规解
阅读全文
摘要:1 二叉树与分治递归 几乎所有的二叉树问题都可以通过分治解决,包括二叉树的遍历、二叉树中求最大分支长度、最大深度任意两个结点间的最大距离,搜索二叉树,平衡二叉树 等等,只要题目中没有严格的时间性能的要求,使用递归的方法时都可以优先考虑分治递归的方法,除了二叉树的层序遍历以外。但然很多题目虽然也可以用
阅读全文
摘要:1.设置word 2010,添加cnblogs帐户 配置参考链接 其中URL地址为:http://rpc.cnblogs.com/metaweblog/fariver,在cnblogs配置的最下方可以查到。 用word来发布的好处是编辑的时候是什么样,网页显示就是什么样,而且word比较容易操作,并且易保存。 2.插入代码 插入代码比较麻烦: ...
阅读全文
摘要:C++ STL vector 如何彻底清空一个vector? 实践证明,vector.clear()并不能把vector容量清空,只会让vector.size()变为零,依然很占内存。那如何让vector的capacity变为0呢? 虽说set迭代器不能加减常数,但提供了.begin(),.end(
阅读全文
摘要:二分搜索 看到优化O(logn)时间复杂度问题, 一般用二分搜索 模板 int start = 0, end = array.size() 1, mid; while (start + 1 A[k/2], 这与我们的假设 B[m] A, int startA, vector B, int start
阅读全文