自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(296)
  • 资源 (3)
  • 收藏
  • 关注

原创 优秀blog 不断进步(各种学习资源汇总)未完待续

ACM:九野2014训练计划  我的DP训练情结  kuangbin分类题集  夏天的风 分类  zinthos算法整理算法:项目经历、纸上代码加正确性证明巩朋:我的算法学习之路   大神的面试之旅  Python JAVA 等 迅速入门:Vami教你入门   自强学堂   Python从入门到精通必读书籍List 程序员必读书单  ReadEn

2014-11-17 09:35:45 851

原创 word2vec

例子word2vec就是对word做了一个embedding操作,简单来说就是将原有用one-hot编码的预料库(一般来说百万级别)转为embedding形式(几百维)。 比如:维基百科预料库包含的词有100W,将其使用one-hot编码。 “The dog barked at the mailman” 基于这个句子,可以构建一个大小为5的词汇表(忽略大小写和标点符号):(“the”,

2017-12-11 13:34:18 477

原创 蓄水池算法

在一个未知的池子里选1个数字,让他们被选择概率一致。 假设n的时候,前n个数字被选择的概率都是1n \frac{1}{n} 当为n+1时候,当前n+1这个数,我们选择的概率是1n+1\frac{1}{n+1},其余数字的概率是nn+1\frac{n}{n+1},那么一共有n个数字的概率是1n\frac{1}{n} 所以 n∗1n∗1n+1=1n+1 n * \frac{1}{n} * \fr

2017-12-10 21:08:29 714

原创 LDA主题模型三连击-入门/理论/代码

本文将从三个方面介绍LDA主题模型——整体概况、数学推导、动手实现。 关于LDA的文章网上已经有很多了,大多都是从经典的《LDA 数学八卦》中引出来的,原创性不太多。 本文将用尽量少的公式,跳过不需要的证明,将最核心需要学习的部分与大家分享,展示出直观的理解和基本的数学思想,避免数学八卦中过于详细的推导。最后用python 进行实现。概况第一部分,包括以下四部分。为什么需要LDA是

2017-12-10 14:38:00 953 1

原创 56. Merge Intervals && 57. Insert Interval

Merge Intervals这个简单,常见的排序合并思路,然后如果前面的end大于当前的start即合并class Solution(object): def merge(self, intervals): """ :type intervals: List[Interval] :rtype: List[Interval] "

2017-10-17 09:49:32 372

原创 LeetCode-Linked List Cycle

寻找链表是否有环 方法是快慢指针第一次相遇时slow走过的距离:a+b,fast走过的距离:a+b+c+b。 因为fast的速度是slow的两倍,所以fast走的距离是slow的两倍,有 2(a+b) = a+b+c+b,可以得到a=cslow肯定没有走够超过一圈,在第一圈的中间停下来。假设直接就在圆上,则必定slow走一圈相遇,若前面还有一截,则不必等到一圈即可相遇。同时起步是最远的距离。pu

2017-09-08 20:22:29 312

原创 LeetCode-Permutations && unique && next

Permutation 按照全排列的方式,每次生成后,下一个数字来插孔生成所有的情况,不然使用递归还要标记每个位置,麻烦。class Solution(object): def permute(self, nums): perms = [[]] for n in nums: new_perms = []

2017-09-08 10:58:54 292

原创 LeetCode-[单调栈]Largest Rectangle in Histogram

Link Link 单调栈使用最经典题目。 求最大矩形面积。 N2方法是枚举起点,然后不断枚举终点,在起点固定终点右移过程中记录最短距离即可。 N1方法是使用单调栈,基于的观察是对于一个连续上升的矩形来说,若当前矩形比前一个不小于就放入队列。 因为此时最优解的终点必然可以延展到当前矩形。若当前矩形小于前一个,那前一个有可能是最优解的终点。现在问题是,如何找到最优解的起点。此时以 前一个矩

2017-09-08 09:32:14 390

原创 1的个数 汉明距离

这里写链接内容1、直接位移计算int hammingWeight(int n) { int res = 0; for (int i = 0; i < 32; ++i) { res += (n & 1); n = n >> 1; } return res; }2、n和n-1进行与运算

2017-09-03 19:41:25 377

原创 LeetCode-Regular Expression Matching

这里写链接内容 这里写链接内容 这个是处理正则表达式的题目 核心问题是*的意思表示它前一位的重复次数可以为0 对于这类匹配 定义一个二维的DP数组,其中dp[i][j]表示s[0,i)和p[0,j)是否match,然后有下面三种情况P[i][j] = P[i - 1][j - 1], if p[j - 1] != ‘*’ && (s[i - 1] == p[j - 1] || p[j -

2017-09-03 19:09:39 250

原创 KNN && KD树

KNN 给定一个训练数据集,对新的输入实例,在数据集中找到与该实例最近邻的k个实例,这k个实例的多数属于某个类,就把该输入实例分为这个类。 需要调节的参数1、K的个数 2、距离度量 3、分类决策规则(服从多数)import numpy as npimport operatordef KNN(x,dataset,k): datasetSize=dataset.shape[0]

2017-09-03 18:41:28 344

原创 LeetCode-Find the Duplicate Number

查找数组中重复元素,仅有一个元素重复但可能重复多次。数组长度为n+1,1…n每个数字最多出现一次。二分法,首先排序,因为整个数组的中位数是知道的,统计整个数组中小于n/2数字个数,若小于则重复数字在右边,反之在左边。class Solution(object): def findDuplicate(self, nums): """ :type nums: Li

2017-09-02 22:30:10 209

原创 LeetCode-Reverse Nodes in k-Group

题意:将列表每K个反转一次。 如k=2,1-2-3-4-5 2-1-4-3-5 如k=3,1-2-3-4-5 3-2-1-4-5反转方法是pre-cur-nxt pre是开始链表的头结点人为加的,是k数组前一个,last是k数组中首位,next是k数组后一个,这里将每次cur都暂存在pre的next中,使用dummy作为pre来进行,class Solution {public:

2017-09-02 22:20:25 213

原创 LeetCode-[双指针法]Container With Most Water

双指针法 即从左右两端开始扫描,若满足某种条件则会向中间移动,如此这样可以将复杂度从N2降至N题意:每个点和X轴垂直,构成一个边,任选两个组成挡板储存水,求最多能储藏多少水。分析:1、能放多少水由最短的板子决定。2、因为和位置有关,数据不能排序 3、暴力思维是枚举所有的情况,若想减少比较次数,第一反应是储存前面的最高?但是仍和两个板子间的距离有关,没有办法。使用双指针,若左边板子高,计算此时的值和

2017-09-02 21:43:41 266

原创 LeetCode-Merge k Sorted Lists

K路归并排序,将K路都放入最小堆构建起来,每次都取最小放入新的队列,然后将对应的队列再取一个放入堆中。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } *

2017-09-02 21:26:48 228

原创 梯度下降 && 线性回归 && 逻辑回归 && softmax

生成模型和判别模型不同判别方法:由数据直接学习决策函数Y=f(X)或者条件概率分布P(Y|X)作为预测的模型,即判别模型。基本思想是有限样本条件下建立判别函数,不考虑样本的产生模型,直接研究预测模型。典型的判别模型包括k近邻,感知级,决策树,支持向量机等。生成方法:由数据学习联合概率密度分布P(X,Y),然后求出条件概率分布P(Y|X)作为预测的模型,即生成模型:P(Y|X)= P(X,Y)/ P(

2017-09-02 10:49:39 362

原创 LeetCode-Find Peak Element

Link 题意:在log2N时间中,找到一组数中的峰值(大于左右两边)。如1,3,7,4,6,2 中7 6 都是。解析一看log2N就知道必定二分,但如何二分,进入左右哪边? 因为这个是求局部的峰值,不必求全局最优之类的。可以发现对于数组中任何一个数字他都能归到某一个峰值区间中,那么对于mid处的数字,如果他小于他后面的数字那他所处的峰值定然在前半部分,反之后半部分。class Solut

2017-08-31 23:00:16 241

原创 后缀数组理解

参考PDF cnblog gitbook 计数排序和基数排序都用到了第一步和每次求sa都用到了 基数是在第一关键字和第二关键字时用到 for(p=0,i=n-j;i<n;i++) y[p++]=i; for(i=0;i<n;i++) if(sa[i]>=j) y[p++]=sa[i]-j; y的内容是按照第二关键字排序结果(内容是下标),第一句是因为小于长度的没有第一关键字 ,所以排

2016-11-18 22:14:07 385

原创 压测总结

性能瓶颈一般是这三个方面:CPU、网络带宽、I/O前提:带宽为5M,往返延迟为33ms,处理时间为16ms 若要忽略报文内容每次等待通信的时间。则5M/s * 50ms = 250KB 但是一般的TCP 窗口大小为几十B到4KB不等,8KB/ 5M/s = 1.6ms 因此发送1.6ms后即停止发送等待网络返回结果后才发送。线程数分析: 5 线程的时候CPU调度无压力线程分

2016-11-17 16:58:47 1074

转载 POJ3270 cow sorting

题目描述:给你一个数字序列(每个数字唯一),每次你可以交换任意两个数字,代价为这两个数字的和,问最少用多少代价能把这个序列按升序排列好。题目的具体做法是参考刘汝佳的《算法艺术与信息学奥赛》大概思路是:以后再用别种方法解,1.找出初始状态和目标状态。明显,目标状态就是排序后的状态。2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7明显, 目标状态是2 3 4

2016-11-17 16:58:22 342

原创 AVL平衡树(详解)-JAVA版本

平衡二叉树在进行插入操作的时候可能出现不平衡的情况,AVL树即是一种自平衡的二叉树.它通过旋转不平衡的节点来使二叉树重新保持平衡,并且查找、插入和删除操作在平均和最坏情况下时间复杂度都是O(log n)AVL树的旋转一共有四种情形,注意所有旋转情况都是围绕着使得二叉树不平衡的第一个节点展开的。RBT VS AVL:实际上插入AVL树和红黑树的速度取决于你所插入的数据.如果你的数据分

2016-11-17 16:52:04 553

原创 Tomcat 配置

一般来说对一项任务的重启,要么调用脚本,要么直接kill ClassNotFoundException “1catalina.org.apache.juli.FileHandler” 这个问题是catalina.sh 中JAVA_OPS设置的问题,要把-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 选项放在JA

2016-11-17 16:51:58 277

原创 poj 2709 Painter 坑爹贪心

#include#include#include#include#includeusing namespace std;#define maxn 256int N,G;int a[20];int min(int a,int b){ return a<b?a:b;}int main(){ int i,j,k,ans; int tmp; while(scanf

2016-11-17 16:50:23 288

原创 区间dp

题目连接:点击打开链接一般的dp就是寻找DAG图,区间dp的每步选择都是分成两边部分进行操作.共性特性(即一定要满足一个位置上要求)A. 求面积,从凸包中间枚举分割点B.脱衣服穿衣服,衣服脱了不能再穿,可以套上.若该区间没有和第一个一样的则dp[i][j]=dp[i-1][j]+1 反之为dp[i][j]=min(~,dp[i+1][k-1]+dp[k][j]) //因为i和k一样但要

2016-11-17 16:48:36 308

原创 FFT

花了一天时间学习了一下FFT。 参考解决的问题:乘法加速。将O(n^2) 降低至O(nlogn)思想:原本的乘法是多项式的每一项去乘然后合并同类项,FFT将问题变为n个点的乘法。(x,y0)* (x,y1) = (x,y0*y1)做法:将多项式通过蝴蝶分治方法使用DFT转换为多点,每个点的取值是n阶虚数根。代码部分#include<bits/stdc++.h> using namespace

2016-11-17 16:46:24 938

原创 git diff java 实现

经常使用git diff 但是其是如何实现的呢? 本博客简单实现不考虑行的比较。可以比较两个字符串// 相当于把每一行换比较换成字符比较,道理一样s1='xxxxxxxxxx's2='yyyyyyyyyy'首先我们把文件转化为两个列表,列表的每个元素是文件的某一行:A = [1行、2行、3行、4行、…] B = [1行、2行、3行、4行、…] 然后我们计算A和B最长的相似元素的长度lcs(

2016-06-17 11:59:41 4136

原创 TopMap

经常有一种需求,是需要存储键值对,放入一个对象对应的使用次数。 然后需要获取前10%、20%等数据。如果进行Map的全量排序输出会非常慢,因此需要用TreeMap。包装后如下:@Test public void testHashMap() { Map<String, Integer> topMap = new HashMap<>(); List<String> li

2016-04-13 17:07:35 1024

原创 Redis-util 转换函数

#include "fmacros.h"#include <stdlib.h>#include <stdio.h>#include <string.h>#include <ctype.h>#include <limits.h>#include <math.h>#include <unistd.h>#include <sys/time.h>#include <float.h>#inc

2016-03-27 12:06:18 502 1

原创 自己动手实现-监听器

监听器就是在执行一些操作的时候通知监听此事件的对象执行一定的方法。写了BingoneMap,其中使用Set存储监听器,在事件发生后执行监听器事件。基本要素是留一个口子给开发者实现该事件需执行怎么的操作。同时注意数据之间的传递,监听器方法和调用者之间的数据交互。package bingone;import java.util.*;/** * Created by bingone on 16/3/2

2016-03-21 01:21:22 838 1

原创 CountDownLatch

CountDownLatch 针对有强先后关系类的并发顺序,而不是允许随机的情况。CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上的await()方法都会阻塞,直到这个计数

2016-03-18 23:21:12 312 1

原创 Java多线程示例(模拟通话,sleep,join,yield,wait,notify,Semaphore)

主线程等待子线程的多种方法 synchronized浅析 sleep 是静态方法,Thread.sleep(xx)谁调用谁睡眠。 join 是合并方法,当前线程调用其他线程xx.join()则等到xx结束才能运行 yield 当前线程让出cpu进入就绪队列。 wait,noitfy,synchronized配合使用对资源进行管理。 synchronized(this)以及非static

2016-02-14 13:38:01 1774

原创 expect

参考 https://github.com/tzlwin/my-scripts/tree/master/expect_scripts http://inguza.com/document/expect-and-tcl-mini-reference-manual expect-manual http://bbs.chinaunix.net/thread-3566066-1-1.html FAQ

2015-12-29 23:36:08 482

原创 工具站点

Bash查 json工具 URL解码 24mail ExcelToHtml HtmlToMarkdown

2015-12-20 16:40:07 471

原创 ssh、scp、split 、tar、tail

用ssh连接到服务器上tail动态查看日志将需要的文件分割打包tar splitscp传送本地分析ssh -l user xxx.xxx.xxx.xxxcd /data/logstail -f access.logtar -czf access.tar.gz access.logsplit -b 20m access.tar.gz access_log_或者split -l 1000 ac

2015-12-20 16:29:40 636

原创 $'\t' 解释

参考 简单来说,就是a=$'\t' 后,a内容就是tab了。cat a.sha=$'\t'echo $ash -x a.shWords of the form $'string' are treated specially. The word expands to string, with backslash-escaped characters replaced as specified

2015-12-20 16:04:26 852

原创 tmux 使用

参考 参考 快捷键 解决终端不能多开。 基本需要掌握的就是 session、window、panel的增、删、查看、切换tmux所有自带命令都默认需要先按Ctrl + b,然后再键入对应的命令tmux ls -查看所有session,attach是可连接tmux attach-session -t name - 连接name会话tmux new -s name - 创建name se

2015-12-20 15:56:35 1179

原创 MySQL 约束与索引

约束索引问答 primary key unique key MySQL操作 外键MYSQL不支持非主键的聚集索引。PRIMARY KEY 不可空不可重复,在一个表里可以定义联合主键; primary key = unique + not null PRIMARY KEY是一个唯一KEY,此时,所有的关键字列必须定义为NOT NULL。如果这些列没有被明确地定义为NOT NULL,M

2015-12-13 17:27:13 2370

原创 Bash 入门

SHELL十三问内置1$# 是传给脚本的参数个数$0 是脚本本身的名字$1 是传递给该shell脚本的第一个参数$2 是传递给该shell脚本的第二个参数$@ 是传给脚本的所有参数的列表$* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个$$ 是脚本运行的当前进程ID号$? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误$! 是Shell最后运

2015-12-13 16:04:38 555

原创 fs = [(lambda n, i=i : i + n) for i in range(10)]

看Python中的lambda表达式,不免有很多人对一些文章中的这句不能理解。 相关链接参考我也困惑了一下,这里是我对它的理解。>>>[a for a in range(5)][0,1,2,3,4]#这个大家都能理解就是for每次遍历将其结果作为列表的输出>>>a4#这种方式使用的变量可是全局变量,a=4#因此这个表达式fs[3][8]=13我们能够理解了#要记住此时生成的列表中

2015-12-06 21:12:31 5279

原创 Liunx 用户权限管理

对服务器操作,首先的任务就是分配权限。 1. 用户信息在/etc/passwd,密码在/etc/shadow,组信息/etc/group 2. 对文件来说chown改变所有者、chgrp改变组信息Linux权限管理及用户与用户组 chmod +t 仅能被属主删除 关于chmod中uid,gid,sticky的讲解参考 示例:linux 构建用户群与用户组、权限分配1、 如何在Linux

2015-12-06 15:02:58 662 1

Spring-IOC实现

Spring-IOC的简单实现,包括注解和注解解析,欢迎大家拍砖~!

2015-09-01

Spring-IOC学习记录

自己学习Spring过程中做的记录 自己留着自己看

2015-08-06

Spring示例代码

Spring示例代码,忘记的时候看一下~

2015-08-06

空空如也

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

TA关注的人

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