自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(55)
  • 收藏
  • 关注

原创 LR VS D-Tree VS SVM

分享两篇LR,D-tree及SVM算法的对比文章,作者剖析了三种不同算法的切分超平面及优点缺点。 http://www.edvancer.in/logistic-regression-vs-decision-trees-vs-svm-part1/ http://www.edvancer.in/logistic-regression-vs-decision-trees-vs-svm-part2/

2015-11-23 21:14:17 665

原创 C++的几个知识点

union 联合体 union是平常编程中使用比较少的数据结构。不同于结构体struct中每个数据单独开辟相应大小的内存,union联合体中数据是相互覆盖,共享内存的。 用途:使几个不同类型的变量共占一段内存(相互覆盖)union demo{ int a; char c[2];}u;在联合体demo中,整型量a和字符c公用同一内存位置。当一个联合被说明时,编译程序自动地产

2015-10-24 19:17:48 484

原创 二叉树中和为某一值的路径

//输入二叉树和一个整数,输出二叉树中节点值之和为输入整数的所有路径.路径的定义是从根节点到叶子节点。//路径总是先遍历根节点,所以采用先序遍历的方法//先序遍历某一节点时,将该节点加入路径中,累加是否得到该整数。如果是,输出改路径。//若该节点不是叶子节点,则继续访问他的叶子节点。//若该节点是叶子节点,判断后则需要回退到父节点中。递归函数可以自动实现这一功能,但是需要将路径中的当前节点删

2015-10-11 10:17:58 505

原创 树的子结构

//两棵二叉树判断B是不是A的子结构//1.在A中遍历,找到节点与B根节点的值相等的节点//2.对该节点和B树遍历,判断结构是否一样//递归#include<iostream>using namespace std;struct Node{ int value; Node* left; Node* right;};bool Traver(Node* pa, N

2015-10-11 09:45:12 558

原创 合并有序链表

/从链表的头结点开始,若phead1>phead2,那么合并后链表的头结点是phead1.反之,则是phead2//剩余链表仍然有序,合并步骤同上一步一样,可采用递归的方法解决//边界条件 phead1为NULL,phead2为NULL#include<iostream>using namespace std;struct ListNode{ int value; ListN

2015-10-11 09:27:58 498

原创 反转单链表

//保存三个指针,pNode,pPre,PNext;//pNode表示当前要反转的节点//pPre表示当前节点在原链表中的前一节点//pNext表示当前节点在原链表中的后一节点#include<iostream>using namespace std;struct ListNode{ int value; ListNode* next;};ListNode* Rever

2015-10-10 23:24:56 376

原创 树的最近公共祖先

//如果是二叉搜索树的话,//若当前节点t大于节点u,v,说明u,v的LCA在t的左节点中,故从t的左节点中继续查找//若当前节点t小于节点u,v,说明u,v的LCA在t的右节点中,从t的右节点继续查找//当找到一个节点满足u<t<v时,该节点就是u,v的LCA//当t的一个节点的值等于u或v时,说明其中一个节点是另一个节点的父节点,返回t的父节点struct TreeNode{

2015-10-10 22:35:27 401

原创 链表的第一个公共节点

//两个单链表有公共节点,那么公共节点一定出现在两个链表的尾部。//从两个链表的尾部向前比较,最后一个相同的节点就是我们要找的节点。//方法1:用“先进后出”的想法——栈来实现。把两个链表的节点放入两个栈中,依次弹出比较两个栈顶节点是否相同。//方法2:链表的长度不同时,从头开始遍历到尾节点的时间就会不同。//首先遍历两个链表的长度,得到长的链表比短的链表多n个节点。//然后第二次遍历时,在

2015-10-10 21:37:32 497

原创 链表中环的入口

#include<iostream>using namespace std;//1.先判断是否有环,快慢指针,慢指针一次向后前进一格,快指针一次向后前进两格(注意判断是否为NULL)//当快指针为NULL时,两指针仍为相遇则不存在环。//2.判断环中包含元素的个数。//以两指针相遇处为初始点,慢指针依次往后挪,并计数,当再次回到相遇点时,可求得包含元素个数n。//3.找出环的入口。指针p1

2015-10-10 16:21:35 378

原创 test

/*深度优先搜索用栈(stack)来实现,整个过程可以想象成一个倒立的树形:1、把根节点压入栈中。2、每次从栈中弹出一个元素,搜索所有在它下一级的元素,把这些元素压入栈中。并把这个元素记为它下一级元素的前驱。3、找到所要找的元素时结束程序。4、如果遍历整个树还没有找到,结束程序。广度优先搜索使用队列(queue)来实现,整个过程也可以看做一个倒立的树形:1、把根节点放到队列的末尾。2

2015-09-23 23:29:26 332

转载 海量数据处理问题

1.Bloom Filter 1. 给定a、b两个文件,各存放50亿个url,每个url各占64字节,内存限制是4G,让你找出a、b文件共同的url? 解法一:哈希分治法 50G*64B=320G,内存放不下。 将其拆分成1000个文件hash(url)%1000,每个小文件比较。 解法二:Bloom Filter http://blog.csdn.net/hguisu/

2015-09-21 23:03:55 669

原创 sizeof()和strlen()不得不说的故事

sizeof()sizeof()是判断一个对象或者一个类型所占内存字节数的操作符。//32bitint a;int b[]={1,2}sizeof(a)//4bytesizeof(b)//数组对象,计算数组元素所占的总长度 4byte*2= 8bytechar *p0;sizeof(p0)//4 bytechar *p1="Tencent";sizeof(p1);//4 byte p1是

2015-09-19 22:06:38 402

原创 常用c/c++常用getline函数

许久不写C,有些常用的输入输出函数容易忘记。//C读入字符串char ori[1000];char after[20];cin.getline(ori, 120);//读入一行cin.getline(after,20);//读入一行scanf("%s", ori);//读入到空格处为止,以空格为切分符scanf("%s", after);

2015-09-18 22:14:48 449

原创 形参与实参的纠葛

problem以下代码的输出时什么?#include <stdio.h>#include <stdlib.h>#include<string.h>void getmen(char* p){ p = (char *)malloc(100);}int main(){ char *p = NULL; getmen(p); strcpy_s(p, 10, "hell

2015-09-18 17:18:49 453

原创 Random Forest

RF优点: 随机森林是一个最近比较火的算法,它有很多的优点:1.在数据集上表现良好 2.在当前的很多数据集上,相对其他算法有着很大的优势 3.它能够处理很高维度(feature很多)的数据,并且不用做特征选择 4. 在训练完后,它能够给出哪些feature比较重要 5.在创建随机森林的时候,对generlization error使用的是无偏估计 6.训练速度快 7.在训练

2015-09-17 22:38:33 513

转载 Random Forest及Bagging,boosting简介

http://blog.csdn.net/jlei_apple/article/details/8168856

2015-09-16 20:45:32 566

原创 钢条切割-动态规划

Problem给定一段长度为n英寸的钢条和一个价格表pi(i=1,2....)p_i(i=1,2....),求钢条切割方案使销售收益rnr_n最大。注意:切割没有成本,若长度为nn英寸的钢条价格pnp_n足够大,最优价格可能完全不用切割。solution对于rn(n>=1)r_n(n>=1),总可以用更短的钢条的最优收益切割来描述它: rn=max(pn,r1+r(n−1),r2+r(n−2)..

2015-09-15 10:42:19 535

原创 防止过拟合的几个方法

讲得很好的防止过拟合的方法博客地址: http://blog.csdn.net/u012162613/article/details/44261657 几种方法归纳: - early stop,当模型训练到一定规模时提前停止。 - 正则化方法 修改代价函数 - 数据集扩增 可减少过拟合,训练更好的模型. - 各种剪枝方法 -悲观剪枝 不需额外数据集 -代价复杂度

2015-09-14 11:23:22 1831

转载 求解1-10000区间内的素数

转载自:http://blog.csdn.net/lxmky/article/details/7913885 问题: 求出所有1-MAX之间的素数分析: 我们知道如何判断一个数是否为素数,判断number是否可以被1到sqrt(num)之间数整除,如果存在被整除的,不是素数,否则就是素数。但是,如果用这种方法来计算,时间复杂度会非常高,我们采用另一种更好的方法——筛选法。筛选法直观上比较好理解

2015-09-05 10:47:15 615

转载 static用法详解

转自http://www.cnblogs.com/dc10101/archive/2007/08/22/865556.html在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)隐藏当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内

2015-09-04 11:18:34 520

原创 Fibonacci数列与跳台阶问题

Problem一个台阶总共有n级,一次可以跳一格,也可以跳两格,问总共有多少种跳法。Solution以F(n)表示n级台阶的跳法总数。 n=1时,只有一种跳法,一次跳一格。 n=2时,有两种跳法。跳法1:跳两步每次一格;跳法2:跳一步两格。 当n较大时,从最后一步到达第n格只有两种方法。跳法1:最后一步跳一格,所以需要知道F(n-1).跳法2:最后一步跳二格,需要知道F(n-2)。因此问题退化

2015-09-03 22:09:41 386

转载 KMP算法-字符串匹配

本博客内容参照http://blog.csdn.net/v_july_v/article/details/7041827Problem假设现在我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢?如果用暴力匹配的思路,并假设现在文本串S匹配到 i 位置,模式串P匹配到 j 位置,则有:如果当前字符匹配成功(即S[i] == P[j]),则i++,j++,继续匹配

2015-09-02 14:55:02 552

原创 寻找最小k个数或者寻找第K大的数字

Problem输入n个整数,找出最小的前k个数字(或者第K大的数字),例如输入4,5,1,6,2,7,3,8这八个数,则输出最小4个数是1,2,3,4.Solution AO(n)解法,需要修改输入数组。 可以采用快速排序Partition函数来解决这个问题。快排的Partition函数所完成的功能是将小于pivot的数放在Partiton函数返回值的左边,大于pivot的数放在Partiton函

2015-08-31 23:01:57 703

原创 背包问题

ProblemN件物品和一个容量为V的背包,第i个物品的价值为w[i]w[i],体积为c[i]c[i],求解哪些物品装入背包价值最大。 0-1背包:没见物品只有一个,要么装入要么不装入。Solutiondp问题,定义递归式opt[i][j]opt[i][j]为前i个物品在容量为j的情况下的最大装载价值。 对于第i个物品来说,它只有两种选择:装入或者不装入。定义递归式:opt[i][j]=max(

2015-08-31 20:53:04 700

原创 字符串组合问题(无重复)

Problem输入一个字符串,输出该字符串中字符的所有组合,任意两个字符不相同。举个例子,如果输入”abc”,它的组合有a、b、c、ab、ac、bc、abc。Solution输入n个字符,则这n个字符能分别构成程度为1~n的组合,因此需要一个循环来求不同长度的组合。 在求n个字符的长度为m的组合的时候,可以将n个字符分成两部分:第一个字符和其余所有字符。若第一个字符加入组合,则在剩下n-1个字符中

2015-08-27 11:45:55 1091

原创 N皇后问题(回溯递归)

Problem八皇后问题是一个以国际象棋为背景的问题:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。Solution八个皇后中任意两个不能处在同一行,所以每个皇后必须占据一行,及一列。我们采用回溯法的思想去解。首先摆放好第1行皇后的位置,然后在不冲突的情况下摆放第2行皇后的位置。到第i行时,如

2015-08-27 10:02:38 1849

原创 字符串全排列问题(递归回溯)

ProblemA:无重复字符输入一个字符串,打印出该字符串的所有排列,所有字符串不相同。SolutionA问题拆解,将求排列问题看成两步: step1:求所有可能出现在第一个位置的字符,即把第一个字符与后面的字符依次交换依次。 step2:固定第一个字符,求后面所有字符的排列。此时,仍将问题分解成两部分:后面的第一个字符,以及这个字符后的所有字符。然后将第一个字符依次与后面的所有字符交换。指导最

2015-08-25 22:16:59 769

翻译 优化机器学习不平衡数据集的八大策略

什么是不平衡数据不平衡对于分类问题来说是指数据集中样本的类别不平均。比如, 对于一个样本总数为100的二分类问题来说,80个样本被标为类别1,剩下的20个样本被标为类别2.这是一个不平衡的数据集,因为类别1比类别2的样本总数为4:1.不仅仅是二分类问题有类别不平衡问题,多分类问题也存在类别不平衡的问题。不平衡问题很常见大部分的分类数据集中各类别的样本总数不会绝对一样,但是稍稍有一些差别无妨。比如,描

2015-08-24 23:08:25 4401

原创 棋盘移动最短路径问题(Dijkstra算法)

Problem给定一个矩阵A[m][n] ,矩阵上各点的值为移动到该点的代价,每次可以从该点的对角线或直线方向移动一格,求从点A[0][0]移动到点A[m-1][n-1]的最小代价。 比如矩阵,求从左上角的1移动到右下角的1的最小代价。 1 3 0 0 1 2 1 2 0 0 2 3 1 1 1 0 0 1 1 1 1 2 1 1 3 0 0 1 0 1 solution本题可以

2015-08-21 23:36:52 9096

原创 m-图着色问题(贪心解法)

problem图的m色优化问题:给定无向连通图G,为图G的各顶点着色, 使图中任2邻接点着不同颜色,问最少需要几种颜色。所需的最少颜色的数目m称为该图的色数。图的m色判定问题: 给定无向连通图G和m种颜色。用这些颜色为图G的各顶点着色.问是否存在着色方法,使得G中任2邻接点有不同颜色。若图G是可平面图,则它的色数不超过4色(4色定理). 4色定理的应用:在一个平面或球面上的任何地图能够只用4

2015-08-20 11:55:18 13959

原创 100!末尾有几个0

1.100!末尾按10进制计算有几个零?出现0的情况是,当出现2*5时末尾就会出现0.因为2出现的次数远远多于5出现的次数,所以我们要看从1~100里能分解出几个5相乘。数字里只包含一个5: 5,10,15,20,30,35,40,45,55,60,65,70,80,85,90.数字里包含两个5:25,50,75,100.所以是16+8=24先确定100内数字最大可以包含几个5

2015-08-18 21:44:01 1764

原创 Moist (cin,getline的区别)

ProblemMoist has a hobby – collecting figure skating trading cards. His card collection has been growing, and it is now too large to keep in one disorganized pile. Moist needs to sort the cards in alph

2015-08-18 21:24:44 831

原创 Bad horse(图的广度遍历解法)

ProblemAs the leader of the Evil League of Evil, Bad Horse has a lot of problems to deal with. Most recently, there have been far too many arguments and far too much backstabbing in the League, so much

2015-08-17 21:53:50 809

原创 C/C++内存分配的堆和栈

内存分配堆(heap):堆存储的内容一般由用户申请和释放,若用户没有释放一般在程序运行完成以后,由操作系统回收。一般由new,malloc申请的变量才存放在堆中。 栈(stack):栈由编译器(compiler)自动申请和释放,函数参数及调用地址,局部变量的值都存放在栈中。大小及存储结构方式堆:内存分配的堆不同于数据结构里的堆。内存分配的堆存放内容并不连续,而是类似于链表的分配方式。操作系统有一个

2015-08-03 21:57:05 608

原创 维特比算法C++实现

维特比算法C++实现概述维特比算法用来解决HMM的预测问题(解码decoding),即已知模型HMM和观测序列O=(O1,O2,...On)O=(O_1,O_2,...O_n),求对给定观测序列条件概率P(I/O)P(I/O)的最大状态序列I=(I1,I2,...In)I=(I_1,I_2,...I_n).维特比算法实际用动态规划的思想来求解HMM模型预测问题。由动态规划原理,最优路径具有这样特性:

2015-07-27 22:53:17 5285 3

转载 KNN算法理解

一、算法概述1、kNN算法又称为k近邻分类(k-nearest neighbor classification)算法。最简单平凡的分类器也许是那种死记硬背式的分类器,记住所有的训练数据,对于新的数据则直接和训练数据匹配,如果存在相同属性的训练数据,则直接用它的分类来作为新数据的分类。这种方式有一个明显的缺点,那就是很可能无法找到完全匹配的训练记录。kNN算法则是从训练集中找

2015-07-19 12:01:42 1177

原创 <leetcode>String to Integer (atoi)

问题描述:Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible i

2015-05-26 21:37:21 374

原创 <Leetcode>Median of Two Sorted Arrays

题目描述:There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).解法:常规解法是将nums1和n

2015-05-26 16:44:51 317

原创 <leetcode>Add Two Numbers

题目描述:You are given two linked lists representingtwo non-negative numbers. The digits are stored in reverse order and each oftheir nodes contain a single digit. Add the two numbers and return it as a

2015-05-22 20:27:25 404

原创 <leetcode>Merge Sorted Array

题目描述:Given two sorted integer arrays nums1 andnums2, merge nums2 into nums1 as one sorted array.Note:You may assume that nums1 has enough space(size that is greater or equal to m + n) to hold ad

2015-05-22 17:42:02 864

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除