
燕哥带你学算法
jp_666
这个作者很懒,什么都没留下…
展开
-
Sample K算法
0、题目来源 最近去国内某牛叉互联网公司面试,出了一道算法题,看似简单,但是真正的答案十分巧妙。故此回忆并将原题以及解题思路记录下来,供大家学习: 随机的选取容量为N的数组中的k个元素,要求是不能重复选取,并且不能删除数组中的元素,只能够进行交换。其中 k≤n 。1、解题思路对于这个问题我目前有两种解法:蓄水池算法 ;交换转载 2017-07-30 17:30:51 · 703 阅读 · 0 评论 -
求最大子数组之积
题目描述:给定一个长度为N的整数数组,只允许用乘法,计算任意(N-1)个数的组合中乘积最大的一组。算法分析: 动态规划的做法,假设数组为a[N],max[N]表示以下标为i结尾的子数组乘积最大值,min[N]表示以下标为i结尾的子数组乘积最小值。为了处理数组元素为负的问题,必须将最小乘积也保存起来。 很容转载 2017-08-12 16:33:43 · 555 阅读 · 0 评论 -
最长递增子序列
最长递增序列不要求数组元素连续问题,返回递增序列长度和递增序列。o(n^2)做法,顺序比较以第i个元素开头的递增序列即可。利用动态规划来做,假设数组为1, -1, 2, -3, 4, -5, 6, -7。我们定义LIS[N]数组,其中LIS[i]用来表示以array[i]为最后一个元素的最长递增子序列。使用i来表示当前遍历的位置:当i = 0 时,显然,最长的递增序列为(1转载 2017-08-12 16:23:51 · 288 阅读 · 0 评论 -
Java 机器学习库Smile实战(二)AdaBoost
1. AdaBoost算法简介Boost 算法系列的起源来自于PAC Learnability(PAC 可学习性)。这套理论主要研究的是什么时候一个问题是可被学习的,当然也会探讨针对可学习的问题的具体的学习算法。PAC 定义了学习算法的强弱:弱学习算法 — 识别错误率小于1/2(即准确率仅比随机猜测略高的学习算法);强学习算法 — 识别准确率很高并能在多转载 2017-08-18 19:55:02 · 681 阅读 · 0 评论 -
普里姆(Prim)算法
普里姆(Prim)算法,和克鲁斯卡尔算法一样,是用来求加权连通图的最小生成树的算法。基本思想对于图G4而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v转载 2017-08-18 19:38:41 · 997 阅读 · 0 评论 -
Windows下安装Scikit-Learn
0. 引言自从机器学习大火起来以后,做机器学习最热门的语言应该说是非Python莫属,原因大致有以下几个方面:1. Python语言简单易学,语法简单灵活;2. Python的科学计算库非常丰富,减少了机器学习库构建过程中的重复开发;3. Python社区的活跃以及Google等互联网巨头对python的支持等等。用Python做机器学习,最常用的库就是scikit-learn。接转载 2017-07-30 20:44:47 · 599 阅读 · 0 评论 -
面试题之走楼梯问题
题目:一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。注:这道题最近经常出现,包括Microsoft 等比较重视算法的公司都曾先后选用过个这道题作为面试题或者笔试题。 思路一:首先我们考虑最简单的情况:如果只有1 级台阶,那显然只有一种跳法,如果有2 级台阶,那就有两种跳的方法了:一种是分两次跳,每转载 2017-07-30 20:37:41 · 1464 阅读 · 0 评论 -
AdaBoost 算法原理及推导
AdaBoost(Adaptive Boosting):自适应提升方法。1、AdaBoost算法介绍AdaBoost是Boosting方法中最优代表性的提升算法。该方法通过在每轮降低分对样例的权重,增加分错样例的权重,使得分类器在迭代过程中逐步改进,最终将所有分类器线性组合得到最终分类器,Boost算法框架如下图所示:图1.1 Boost分类框架(来自PRML)2、转载 2017-07-30 20:09:43 · 641 阅读 · 0 评论 -
最长公共子序列与最长公共子串
1. 问题描述子串应该比较好理解,至于什么是子序列,这里给出一个例子:有两个母串cnblogs belong比如序列bo, bg, lg在母串cnblogs与belong中都出现过并且出现顺序与母串保持一致,我们将其称为公共子序列。最长公共子序列(Longest Common Subsequence,LCS转载 2017-07-30 19:42:25 · 231 阅读 · 0 评论 -
机器学习该如何入门
什么是机器学习 首先我们看下图了解一下机器学习在AI(Artificial Intelligence 人工智能)领域的地位。在图中,我们可以看到,机器学习是人工智能的一个子领域。而现在火的不要不要的 深度学习 其实是机器学习的一个子分支。机器学习在人工智能中的地位那么到底什么才是真正的机器学习呢?在这里我将对比我和学术界大神的解释:大神的解释转载 2017-07-30 19:12:08 · 378 阅读 · 0 评论 -
Java 机器学习库Smile实战(一)SVM
转自:微信公众号:燕哥带你学算法(Jeemy110)原文链接:点击打开链接要使用Java机器学习库Smile,需首先在项目的Maven配置文件pom.xml中添加如下的maven依赖项: com.github.haifengl smile-core 1.4.0 Smile中的SVM是一个泛型类,他可以支持二分类和多分类两种使用方法转载 2017-08-12 16:42:35 · 2148 阅读 · 0 评论