PythonTip >> 算法 >> All

    有一种单人游戏,在一个无限大的平板上进行,平板的第一象限被划分成正方形网格。开始时将一个卵石放在平板的角落处,每次操作,如果玩家想从平板上移除一个卵石,可以将两个卵石放在与目标卵石紧挨着的两个位置上,一个在其右边,另一个在其上方,当然这两个位置都必须是空的 ...

    作者:zihua | 标签: 算法 | 阅读: 48936 | 发布于: 2014-06-10 15时 | 阅读全文...
    最近在公司里基本处于打酱油的状态,工作正在交接中。没事又做起了算法题目。好久没怎么写算法题了,感觉手气还不错,经常能一次就写对(编译通过,得到想要的结果,没怎么测试),可能是因为这些题目之前看过或是写过 ...
    作者:zihua | 标签: 算法 | 阅读: 51600 | 发布于: 2014-06-10 15时 | 阅读全文...

    问题:

    给定一个数组,数组内元素递增有序,返回该数组所对应的平衡二叉搜索树。

    分析:

    这里要满足的条件有:平衡,搜索树。

    首先看平衡,就是左右子树的高度差的绝对值不大于1 ...

    作者:zihua | 标签: 算法 | 阅读: 47232 | 发布于: 2014-06-10 15时 | 阅读全文...

    Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。Dijkstra算法能得出最短路径的最优解,但由于它遍历计算的节点很多,所以效率低。

    1 ...

    作者:zihua | 标签: 算法 | 阅读: 48927 | 发布于: 2014-06-10 15时 | 阅读全文...

    计算一个数的所有组合数 代码(C++)

    本文地址: http://blog.csdn.net/caroline_wendy

    计算一个数的 ...

    作者:zihua | 标签: 算法 | 阅读: 49953 | 发布于: 2014-06-10 15时 | 阅读全文...

    本文中只是简单的体会bloomFilter算法的基本原理,设计实现一个生成100万个不重复的随机数。

    选择3个 分布均匀 质数,在这里面质数的选择还是挺有讲究的,要注意不能太小,必须能够满足bloomfilter空间,不然整个空间都是1了还没有找到100万个不重复的随机数。不多说 ...

    作者:zihua | 标签: 算法 | 阅读: 47327 | 发布于: 2014-06-10 15时 | 阅读全文...

    1.背景

    在美团,为了保证单子质量,需要对上单系统创建的每一个产品进行审核。为了提高效率,审核人员积累提炼出了一套关键词库,先基于该词库进行自动审核过滤,对于不包括这些关键词的产品信息不再需要进行人工审核。因此 ...

    作者:zihua | 标签: 算法 | 阅读: 48443 | 发布于: 2014-06-10 15时 | 阅读全文...

    优先级队列是容器的一种,可以向优先级队列中添加或取出数据,取出数据时只能取出最大的数或最小的数。而其他的一些容器比如队列和栈,取出的顺序跟插入的顺序是有关的。

    优先级队列的接口如下:

    public class MaxPQ<Key ...
    作者:zihua | 标签: 算法 | 阅读: 47732 | 发布于: 2014-06-10 15时 | 阅读全文...

    二叉树

    介绍二叉堆之前首先介绍二叉树。二叉树有一个根节点,节点下又有两个子节点。完全二叉树是指一个二叉树树除了最底层,其他层都是完全平衡的。

    完全二叉树最基本的性质就是它的高度是 floor(lgN)。

    二叉堆 ...

    作者:zihua | 标签: 算法 | 阅读: 47145 | 发布于: 2014-06-10 15时 | 阅读全文...

    堆排的灵感源自于堆的数据结构。它是一种原地排序算法,不需要额外的临时数组。

    基本思想

    堆排的基本思想是:

    1. 先建立一个最大堆

    2. 将最大的元素移动到数组末尾,减小堆的大小,调整最大堆使其符合最大堆的性质

    3. 重复第二步 ...

    作者:zihua | 标签: 算法 | 阅读: 46380 | 发布于: 2014-06-10 15时 | 阅读全文...