自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 二分图的最大匹配、完美匹配和匈牙利算法

转载自: Renfei Song’s Blog这篇文章讲无权二分图(unweighted bipartite graph)的最大匹配(maximum matching)和完美匹配(perfect matching),以及用于求解匹配的匈牙利算法(Hungarian Algorithm);不讲带权二分图的最佳匹配。二分图:简单来说,如果图中点可以被分为两组,并且使得所有边都跨越组的边界,则这就是一个二

2016-09-26 09:49:58 285

原创 拓扑排序

拓扑排序的原理及其实现 LeetCode 207. Course Schedule LeetCode discussKahn算法从有向图中选取一个没有前驱(即入度为0)的顶点,并输出之;从有向图中删去此顶点以及所有以它为尾的弧;如果最后还有顶点,则图中有环bool canFinish(int numCourses, vector<pair<int, int>>& prerequisite

2016-09-05 10:01:24 221

原创 Reservoir Sampling

382. Linked List Random Node LeetCode上的一道题 Given a singly linked list, return a random node’s value from the linked list. Each node must have the same probability of being chosen. Follow up: W

2016-08-29 09:13:19 360

原创 k-Means / bisecting k-Means

k-Meansk值由用户指定,为簇的个数随机生成k个质心cc对每个样点,选出计算距离最近的质心ii, 则样点被分配到第ii个簇对每个簇,平均簇内的所有样点的坐标,得到质心的坐标cic_i k-Means可能收敛到局部最小值bisecting k-Means

2016-08-19 08:36:55 478

原创 SVM

支持向量机模型logistic回归中,得到线性划分f(x)=ωTx+bf(x)=\omega^Tx+b, 当f(x)>0f(x)>0时,判为1,f(x)<0f(x)<0时,判为0。 SVM与logistic回归类似,但划分方式为 {ωTx+b≥1,y=1ωTx+b≤−1,y=−1\left\{ {\begin{array}{*{20}{c}}{\omega^Tx+b \ge 1,y=1}\\

2016-08-09 21:17:37 245

原创 Logistic回归

《机器学习实战》 第5章直接开始梯度下降的代码,没有搞明白。补上《机器学习》这部分的原理线性模型f(x)=ωTx+b f(x) = \omega^Tx+b 是直线方程。确定ω\omega和bb即可确定模型。线性回归线性回归通过给定数据集,确定线性模型,即确定参数ω\omega和bb最小二乘法基于均方误差最小化来确定线性模型中参数 (ω∗,b∗)=argmin(w,b)∑i=1m(f(xi)−yi

2016-08-08 16:06:29 421

原创 决策树

ID3利用信息论划分数据集 - 数据越无序,熵越大 - 对数据的划分,使得数据趋于有序,熵减小 - 不同的划分方法,划分前后熵差值不同 - 每次找出一个特征,使得对数据的划分前后,熵差值最大

2016-08-07 22:23:10 222 4

原创 k-近邻算法(k-Nearest Neighbor, kNN)

找出测试用例与训练样本之间特征空间距离最近的k个点。根据这k个点的分类,对测试用例进行分类。def classify0(inX, dataSet, labels, k): dataSetSize = dataSet.shape[0] diffMat = tile(inX, (dataSetSize, 1))-dataSet #tile重复向量来构造矩阵 sqDiffMat =

2016-08-07 22:17:00 247 5

原创 线性规划求解路径问题

问题描述 给定一个带权重的有向图G=(V,E),V为顶点集,E为有向边集,每一条有向边均有一个权重。对于给定的顶点s、t,以及V的子集V’,寻找从s到t的不成环有向路径P,使得P经过V’中所有的顶点(对经过V’中节点的顺序不做要求)。整数规划求解思路记边的变量为ei e_i 对应权重为ci c_i , 点记为viv_i, 其出边记为vojivo_i^j, 其入边记为vijivi_i^j,

2016-05-31 21:22:39 5630 3

原创 push_heap

http://www.cplusplus.com/reference/algorithm/push_heap/push_heap// range heap example#include <iostream> // std::cout#include <algorithm> // std::make_heap, std::pop_heap, std::push_heap, std:

2016-05-04 21:51:17 329

转载 元胞自动机

http://www.cnblogs.com/lvpengms/archive/2010/02/08/1666095.html

2016-04-16 21:54:53 542

转载 hadoop

http://www.cnblogs.com/yjmyzz/p/4280069.html

2016-04-15 16:28:04 182

原创 一个有意思的bug

最近在做图中路径查找的算法。 前一个版本中,算法需要动态的将一些边标记为不可信任。于是我给边的定义添加了一个字段。如下int edges[MAX_EDGE_NUM][4]; //[边序号] 0:权重 1:起点 2:终点 3:是否可信赖到了下一个版本的算法中,不在需要这个不可信赖字段了,于是我从边的数据结构中删掉了这个字段。int edges[MAX_EDGE_NUM][3]; //[边序号] 0:

2016-03-27 10:38:31 295

原创 优先队列

priority_queueempty(); pop(); pop(); push();默认为大顶堆priority_queue<int> q;仿函数struct cmp{ bool operator() (path a, path b) { return a.f > b.f; }};

2016-03-21 20:43:48 191

原创 链接 / 静态库 / 共享库

静态库 .a将库文件拷贝,嵌入可执行文件中。 缺点: 当静态库更新的时候,如果想使用新版本的库,必须重新链接。共享库 .so .dll动态连接器执行动态链接。

2016-03-19 09:50:21 352

原创 Edit Distance

LeetCode #72. Edit Distance状态:d[i][j]表示A[1~i], B[1~j]之间的编辑距离状态方程: 1. d[0, j] = j; 2. d[i, 0] = i; 3. d[i, j] = d[i-1, j-1]; A[i] == B[j] 4. d[i, j] = min{d[i-1, j-1], d[i, j-1], d[i-1, j]} +1; A[i]

2016-03-18 17:09:26 194

原创 word break

LeetCode 139. Word Breakbool wordBreak(string s, unordered_set<string> &dict) { vector<int> dp(s.size() + 1); //dp[i + 1]为s(0~i)是否有路径 dp[0] = 1; for (int i = 1; i < s.size() + 1; i++)

2016-03-18 16:04:13 241

原创 正则表达式

正则表达式图解 这是一个神奇的网站,可以用图示正则表达式的结构。匹配单个字符 . 匹配单个字符行首 行尾 ^ 匹配行首 $ 匹配行尾0次或多次 * 代表0次或多次0次或1次 ? 0次或1次1次或多次 + 1次或多次范围 [a-c] 范围匹配匹配次数 {2} 2次正则表达式从来都没有学会过,无语死了。

2016-03-18 10:52:09 175

原创 DP(6)

Gray Code 格雷码不唯一。以下代码没有通过LeetCode的测试,但是输出是符合格雷码规则的编码序列。 bool diff(int a, int b, int n) { int s = a^b; for (int i = 0; i < n; i++) { if ((1 << i) == s)

2016-03-18 08:38:44 176

原创 shell练习

LeetCode #195. Tenth Line# Read from the file file.txt and output the tenth line to stdout.cnt=0while read line && [ $cnt -le 10 ]do cnt=`expr $cnt + 1` if [ $cnt -eq 10 ] then echo $line

2016-03-17 11:08:56 184

原创 高并发服务器

多进程并发服务器Apache服务器 当accept时,fork一个子进程。 子进程处理请求,父进程继续listen多线程并发服务器多路I/O转接服务器selectpollepoll

2016-03-16 18:58:59 403

原创 DP(4)

LeetCode #120int minimumTotal(vector<vector<int>>& triangle) { const int INF = 10000; vector<vector<int>> d(triangle); for (int i = 1; i < d.size(); i++) { for (int j = 0; j < d[

2016-03-16 16:25:22 263

原创 shell函数|常用命令|重定向

funWithReturn(){ echo "这个函数会对输入的两个数字进行相加运算..." echo "输入第一个数字: " read aNum echo "输入第二个数字: " read anotherNum echo "两个数字分别为 $aNum 和 $anotherNum !" return $(($aNum+$anotherNum))

2016-03-16 11:03:02 248

原创 shell流程控制

if-elseif conditionthen command1 command2 ... commandN fiif conditionthen command1 command2 ... commandN else commandfiforfor var in item1 item2 ... itemNdo

2016-03-16 10:59:26 162

原创 shell运算符

原生bash不支持数学运算(加,减,乘,除,求余),可以通过awk, expr实现。 expr是一款表达式计算器,使用反引号 ` 表达式与运算符之间要有空格val1=`expr 2 + 2` #有空格echo $val1 #4val2=`expr 2+2` #无空格echo $val2 #2+2算术运算符乘法 `expr $a \* $b`赋值

2016-03-16 10:21:58 298

原创 shell

“#!” 是一个约定的标记,告知系统哪种shell#!/bin/bashecho "Hello World !"注释#-------------# 注释使用 ##-------------变量变量名和等号之间不能有空格使用变量前加$, 可以外加{}区分界限 name="bash"echo $nameecho ${name}只读变量使用 readonlyurl="http://blog.cs

2016-03-16 09:48:54 198

原创 DP(3)

LeetCode #135int candy(vector<int> &ratings) { int len = ratings.size(); vector<int> candy_vec(len); //初始化 for (auto &i : candy_vec) i = 1; //left -> right for (int i =

2016-03-16 08:44:37 189

原创 DP(2)

LCS最长公共子串 子串连续step1. 二维矩阵中相同元素取1    b  a  bc  0  0  0a  0  1  0b  1  0  1a  0  1  0 则对角线最长为公共子串长度step2. 对以上矩阵做累计。若左上角为1,元素累加。    b  a  bc  0  0  0a  0  1  0b  1  0  2a  0  2  0 则矩阵中,最大的元素为最长公共子串

2016-03-15 22:55:46 142

原创 DP(5)

递归法S(n) : 等于第n个元素与S(n-1)中的每个元素组成集合,外加{n}和全集。复杂度T(n) = 2T(n-1)+2;位运算对N个元素,让每个元素对应N的2进制表示中的一位。某位为0,则不在子集;为1,则在子集中。void subset(int arr[], int len){ int mask = 0, i = 0; int end = (1 << len) - 1;

2016-03-15 21:38:44 200

原创 DP(1)

动态规划:从新手到专家凑硬币状态 d(i)表示凑够i元需要的最少硬币数量状态方程 d(i)=min{ d(i-vjv_j)+1 },其中i-vjv_j>=0,vjv_j表示第j个硬币的面值#define INF 10000;int Min[100];int coins[] = { 1,3,5 };void find_coins(int value){ //初始化 f

2016-03-15 16:52:41 238

原创 socket

网络字节序大端法htonl() //host -> netntohl() //net -> hostserver创建socketsockfd = socket(AF_INET, SOCK_STREAM, 0); //返回文件描述符bindbind(sockfd, (struct sockaddr *) &serveraddr, sizeof(serveraddr));listenlis

2016-03-14 09:51:22 196

原创 DP(0)

动态规划状态转移方程 DAG : 有向无环图LCS最长公共子序列(longest common squence):不要求连续 最长公共子串(longest common substring):要求连续

2016-03-13 21:51:00 208

原创 大端/小端/宏

以0x01234567为例 大端法(big endian) : 最高有效字节在最前面 地址 值 0x100 0x01 0x101 0x23 0x102 0x45 0x103 0x67 小端法(big endian) : 最低有效字节在最前面。大多数Intel兼容机器为小段机。 地址 值 0x100 0x67 0x101 0x45 0x

2016-03-11 14:34:24 847

原创 最短路径算法

Floyd算法Dijkstra算法

2016-03-10 09:52:56 244

原创

图的表示邻接表拓扑排序简单拓扑排序 O(V^2)从入度为0的点出发,删除点及其边。同样方法处理图的其余部分。//O(v^2)void topsort(Graph G){ int counter; vertex v, w; for (counter = 0; counter < numvertex; counter++) { v = findnewve

2016-03-10 09:51:22 208

原创 数据模型(待填)

概念数据模型实体-联系(ER模型) 扩展ER模型 面向对象模型逻辑数据模型关系数据模型 层次数据模型关系操作1.选择操作 2.投影操作 3.集合操作 4.连接操作

2016-03-04 21:30:20 206

原创 线程间通信

线程同步共享资源,多个线程都可以堆共享资源操作。线程操作共享资源的先后顺序不确定处理器堆存储器的操作一般不是原子操作。互斥量互斥锁。临界区锁住的范围。 临界区应该尽可能小。死锁同一线程拥有A锁时再请求A锁。线程1拥有A锁,请求B锁;线程2拥有B锁,请求A锁。读写锁读共享,写独占。条件变量条件变量给多个线程提供了一个会和的场所。一个队列。生产者唤醒所有等待的消费者,争抢资源。信号量mu

2016-03-04 19:32:47 203

原创 线程

基本概念轻量级进程,也有PCB。创建线程和进程的底层函数都是clone。从内核看进程和线程是一样的,都有各自的PCB,但是PCB中指向内存资源的三级页表时相同的。进程可以蜕变成线程。线程 = 寄存器 和 栈linux下,线程时小的执行单位;进程时最小的分配资源单位。线程间共享资源文件描述符表每种信号的处理方式当前工作目录用户ID和组ID内存地址空间text 代码段data 数

2016-03-04 14:56:29 174

原创 信号(待填)

unix信号kill -l1~32: 33~64:实时信号。与驱动硬件有关。信号产生种类信号处理可重入函数全局变量/静态变量

2016-03-04 09:25:56 202

原创 进程间通信

进程间通信进程间通信IPC。内核开辟的缓冲区,进程A将数据写入内核缓冲区,进程B从内核缓冲区读取数据。管道pipe内核中的一段缓冲区。队列实现。单工通信。用于解决有血缘关系的进程间通信。int fd[2]; //fd[0]读端,fd[1]写端pipe(fd);创建管道。管道读端,管道写端。占用2个文件描述符。fork创建子进程。确定通信方向。 – 子写父读。关闭父写,关闭子读。 – 父写

2016-03-04 09:23:09 209

空空如也

空空如也

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

TA关注的人

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