算法
文章平均质量分 77
zqxN
这个作者很懒,什么都没留下…
展开
-
青蛙跳台阶
题目: 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路: 青蛙的最后一次跳跃其实只有n种选择,即跳n级(或者跳n-1级,或者跳n-2级,…,或者跳1级),假设青蛙最后一次跳了k级,那说明它之前总共跳了n-k级,假设它跳这(n-k)级台阶有rkr_{k}种跳法,那么当青蛙的最后一跳为k个台阶时,总共可能的跳法就是rkr_{k},原创 2015-08-18 14:30:38 · 679 阅读 · 0 评论 -
链表的经典技巧及算法
链表是面试笔试中经常遇到的数据结构,有一些常用的操作技巧,有时候复杂的题目只需要把简单技巧结合一下就可以了原创 2015-09-08 19:53:13 · 1391 阅读 · 0 评论 -
二叉树的各种遍历算法
二叉树的遍历算是相当经典了,如前序遍历、中序遍历、后序遍历,即可以用递归的方式实现,也可以用迭代的方式实现,还有诸如层次遍历、线索遍历等,这些算法构成了相当一部分面试题的基础。原创 2015-09-09 16:20:36 · 755 阅读 · 1 评论 -
二叉树的经典技巧及算法 I
1、 判断是否为二叉搜索树,二叉搜索树的基本特征是:左子树的所有节点都小于根节点,右子树的所有节点都大于根节点(假设没有相等的节点),也就是说左子树有上界,右子树有下界,其界为(无限小,无限大),对于根节点的左子树而言,其界为(无限小,根节点),对于根节点的右子树而言,其界为(根节点,无限大),随着层次的递增,下面的子树的上、下界也在更新,而且这个界越来越紧,如果一个二叉树不是二叉搜索树,那么它必然原创 2015-09-10 22:29:11 · 2977 阅读 · 0 评论 -
LeetCode:寻找范围
题目描述:给定一个有序数组(如[5, 7, 7, 8, 8, 10]),以及一个目标值(target=8),找出这个目标值在数组中的范围(结果是[3,4]),要求的时间复杂度为O(logN),N表示数组的长度。1、递归解法:比较中间元素(下标为mid)与target的大小,可能出现三种情况,即中间元素等于 target,中间元素小于 target,中间元素大于 target,下面我们分情况讨论:情况原创 2015-09-18 17:37:33 · 491 阅读 · 0 评论 -
中文分词器分词效果的评测方法
转载请注明出处:http://www.codelast.com/现在有很多开源的中文分词器库,如果你的项目要选择其一来实现中文分词功能,必然要先评测它们的分词效果。如何评测?下面详细叙述。【1】黄金标准/Golden standard所谓的黄金标准是指:评价一个分词器分词结果的好坏,必然要有一份“公认正确”的分词结果数据来作为参照。通常,我们使用一份人工标注的数据作为黄金标转载 2016-09-02 11:50:32 · 3920 阅读 · 0 评论 -
viterbi算法:利用动态规划寻找最短路径
原文链接:https://www.jianshu.com/p/218c1e4f0891动态规划是运筹学的一个分支,是求解决策过程最优化的数学方法,通常情况下应用于最优化问题,这类问题一般有很多个可行的解,每个解有一个值,而我们希望从中找到最优的答案。在计算机科学领域,应用动态规划的思想解决的最基本的一个问题就是:寻找有向无环图(篱笆网络)当中两个点之间的最短路径(实际应用于地图导航、语音识别、转载 2017-12-29 11:30:07 · 2741 阅读 · 1 评论