自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (4)
  • 收藏
  • 关注

原创 SAE+Java+jetty

SAE的java运行环境使用jetty作为servlet的容器,而且开放了几乎所有权限,有效支持各种jar包,但是对于jdk的版本要求很严格,本文时的版本是jdk1.6SAE采用上传war的方式配置java代码,而且war中不能包含servlet-api.jar,否则会与sae上的版本冲突。注意是war中不能包含servlet-api.jar,不是说用eclipse打包成war时不

2014-06-12 17:43:50 1385

原创 Java 泛型中的类型限定

泛型的一般格式Test,使用起来很方便,相当于Object,而且和C/C++中的模板差不多。但是Java的泛型还有一个好处,在于可以限定T的类型,格式如下:Test,这样就要求Test的类型必须继承了Base。注意这里的extends只是一个关键字,不同于表示继承的extends,Base可以是Class,也可以是Interface。TestInterface.ja

2014-05-26 14:10:19 2537

原创 机器学习笔记:线性规划,梯度下降

主要内容来自stanford Andrew Ng视频课程的总结。讲的很好,还有对应的习题,课程可以在下面网站搜索到。https://www.coursera.org/机器学习的目的是在训练数据的基础上得出一个模型,该模型对于给定的输入x,给出相应的输出y。用公式表示就是:y = h(x)。注意x表示一维向量,x={x1,x2,x3...}。这里的xi也就是特征(featur

2014-05-15 00:17:16 3814 1

原创 一分钟了解pagerank最基本原理

这里介绍下pagerank算法的最最最最最基本的原理pagerank是搜索引擎中对网页进行排序的一种算法,更准确的说是给网页分配权重用的。该算法由google的两大boss佩奇和布林发明。每个网页中会有很多超链接,之类的。当然随着js技术的发展,网页中的链接不会全是在中给出。提取网页中的链接也是网络爬虫的最重要组成部分之一,可以用机器学习的方式等。一个网页的权重由指向该网页

2013-12-22 14:14:16 1253

原创 自动解决智能拼图,A*算法

接上一篇博客生成可解的智能拼图后(具体方法参见: http://blog.csdn.net/realmagician/article/details/17395035)就要想办法找到自动解决的办法。对于3*3的拼图游戏,有9!种排列方式,其中有一半是可解的。首先可以暴力搜索,采用dfs的策略,每次大概需要10W次移动,这是不可接受的。。再就是用A

2013-12-21 11:15:38 13162 4

原创 拼图游戏可解性判断,自动生成可解拼图

拼图游戏都玩过,对于一个n*m的拼图游戏,我们将按照从左到右,从上到下的顺序给每个分格标注,可得一个二维矩阵。以3*3为例,标注结果如:0 1 23 4 56 7 8我们假设最大值为空白。即游戏时的样子是这样的:0 1 23 4 56 7 但是不是所有的拼图都是有解的。可解:6 2 14 7 50 3 8无解:4 2 18 3 65

2013-12-18 15:02:56 10289 2

原创 微软面试题:求两升序排序数组两两数字之和中,最小的k个值

题目:有两个升序数组a[n]、b[n],求a[i]+b[i]中和最小的k个。解答:对于数组a[n],b[n],和最小的必然是a[0]+b[0],那么第二小的必然是a[1]+b[0]和a[0]+b[1]中较小的。若较小值是a[1]+b[0],则第三小的必然是a[0]+b[1]、a[1]+b[1]、a[2]+b[0]中最小的。将a[0]+b[1]、a[1]+b[1]、a[2]+b[0]和对

2013-11-23 16:57:26 1370

转载 面试题:元素为32位整数的数组中只有一个数字出现2次,其余都是出现3次,求这个数

http://blog.renren.com/blog/944770783/727850263?bfrom=01020340100以上是原文地址,我加了点注释而已。。def special(lst): ones = 0 twos = 0 for x in lst: twos |= ones & x #等于

2013-11-22 15:18:03 1550

原创 最大流问题

对最大流问题比较感性的认识,要看证明还是要看算法导论的相关章节。最大流问题:给定一个有向图,一般情况下边的值为整数,定义不直接相连的节点间的边值为0,如果有节点i和j直接由多条边,则将这些边合并为一条,值取和。则若i到j有边,则j到i的边为0,这些边称为反向边。定义其中的两个点位源点和汇点,则这个有向图可以视为流网络。网络中的有向边的值表示可以通过该边的最大流量,最大流问题就是求从源点出发,流进汇点的最大流量。为了求最大流,必须了解残余网络,增广路径,反向弧等概念。

2013-09-11 15:42:45 1416

原创 树的非递归便利,中序和后序

把递归转成非递归的基本思想是用栈保留临时状态。对于先序遍历很简单,对于中序和后序遍历要稍微麻烦点。分析中序的过程:对于当前节点,如果有左子树,说明不是当前应该访问的节点,应该入栈然后考察其左子树,否则就在出栈的过程中访问该节点。如果访问了当前节点后,其有右子树,则应该访问其右子树后,再访问其父节点,因此要优先考察右节点。分析后序的过程:对于当前节点,如果有左子树,同中序。如果出栈后没有右子

2013-09-03 16:54:49 838

原创 10月20日,baidu广州站笔试算法题(其中之一):

假设一个大小为100亿个数据的数组,该数组是从小到大排好序的,现在该数组分成若干段,每个段的数据长度小于20「也就是说:题目并没有说每段数据的size 相同,只是说每个段的 size 」,然后将每段的数据进行乱序(即:段内数据乱序),形成一个新数组。请写一个算法,将所有数据从小到大进行排序,并说明时间复杂度。http://blog.csdn.net/v_july_v/article/detai

2013-08-27 10:59:10 868

原创 动态申请二维数组

*. 动态申请二维数组的两种方法方法一:unsigned char** img = new unsigned char*[m];for(int i=0;i方法二:unsigned char** img = new unsigned char*[m];unsigned char* arr = new unsigned char[n*m];for(int i=0;i方法

2013-08-23 12:36:57 1010 2

原创 大数加法和大数乘法

想法极其简单。。。。没什么trickvoid reverseVector(vector &vec){ for(int i=0,j=vec.size()-1;i<j;++i,--j){ int t = vec.at(i); vec.at(i) = vec.at(j); vec.at(j) = t; }}vector addtwo(vector &num1,vecto

2013-08-22 15:59:14 698

原创 非递归的归并排序

const int LEN = 20;void MergeSort(){ int data[LEN]; int data2[LEN]; for(int i=0;i<LEN;++i){ data[i] = rand()%100; } for(int i=0;i<LEN;++i) cout<<data[i]<<" "; cout<<endl; int step = 1; fo

2013-08-21 16:19:55 571

转载 (半转载)Sunday算法(字符串完全匹配)

http://www.cnblogs.com/lbsong/archive/2012/05/25/2518188.html比KMP更容易理解的sunday算法,O(m+n),不用计算next数组,比KMP更快。A = "LESSONS TEARNED IN SOFTWARE TE";B = "SOFTWARE";先从左到右逐个字符比较,以我们的字符串为例:开始的时候

2013-05-04 16:17:18 720

原创 编程之美4.2 瓷砖覆盖

参考:http://blog.csdn.net/hopeztm/article/details/7841917用1*2的瓷砖覆盖N*M的地面。这是一道状态变换的动态规划。考察地面的i行,如果j列上有瓷砖就设(i,j)为1,如果没有瓷砖就设为0。设为0就表示要在(i,j)和(i+1,j)铺竖瓷砖。则最后一行必须全是1。因此可以设一个数组dp[N][2^M-1]记录每一行每种状

2013-04-17 22:12:19 910

原创 字典序求全排列的下一种情况

假设数组的全排列结果是按升序(或者降序)排列的,对于全排列中的一种情况,求下一个排列情况如:输入:a = {5,2,4,3,1}输出:a = {5,3,1,2,4}算法思路,从后向前遍历数组,比较相邻的两个元素(i,j,i#include#includeusing namespace std;templatetypename T>void next_pa

2013-01-02 17:07:02 579

原创 深拷贝,浅拷贝

参考链接:http://www.cnblogs.com/BlueTzar/articles/1223313.html     深拷贝和浅拷贝可以简单理解为:如果一个类拥有资源,当这个类的对象发生复制过程的时候,资源重新分配,这个过程就是深拷贝,反之,没有重新分配资源,就是浅拷贝。     如普通类型对象的复制操作int a = 10;int b = a;就是浅拷贝。     而类对

2012-12-07 22:44:19 648

原创 ATL使用数组做参数

参考链接: http://blog.sina.com.cn/s/blog_66ec4d6601016zfl.htmlCComVariant相关http://blog.csdn.net/win2ks/article/details/2528471VARIANT 与 CComVariant 的使用http://blog.csdn.net/tangaowen/article/de

2012-11-28 23:06:37 3069 1

转载 .Net 中的托管与非托管 (CLR)

CLR(公共语言运行时)         .Net Framework是由彼此独立又相关的两部分组成:CLR和类库,   CLR是它为我们提供的服务,类库是它实现的功能. .NET的大部分特性----垃圾收集,版本控制,线程管理等(这些程序员是无法干预的),都使用了CLR提供的服务         当你为.NET Framework编译源代码的时候,得到的目标代码不是CPU能识别的机器指令

2012-11-25 20:38:49 1808

原创 vs2010 用ATL创建com组件

使用vs2010创建ATL项目可以自动完成复杂的com组建编写 用ATL生成com组件的步骤:1,新建一个ATL项目,选择dll,其他默认参数即可2,在类视图中,右击项目,添加一个类,在向导中填写类的名称,如,testClass。注意参考注意事项的第一条。此时看到多了一个ItestClass的条目。3,右击ItestClass条目,添加一个方法,如add,设置参数,勾选in

2012-11-24 16:20:55 4451 2

自动解决智能拼图,A*算法+生成可解拼图(C++)

自动生成可解拼图问题,并用A*算法给出自动完成的步骤。。另外还有暴力搜索的代码

2013-12-21

C++实现的大数减法

C++实现的大数减法

2013-05-29

andEngine中文文档

AndEngine的中文文档,虽然不是2012年的基于GLES-2的版本,但是有一定的参考价值

2012-12-17

BP算法_java实现 含注释

简单的BP算法,用java实现。采用《机器学习》一书中介绍的算法

2012-04-05

空空如也

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

TA关注的人

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