- 博客(47)
- 收藏
- 关注

原创 面试相关
1.快排 http://blog.youkuaiyun.com/xys228280987/article/details/510828992.单链表反转 http://blog.youkuaiyun.com/xys228280987/article/details/510750883.机器学习算法
2016-04-12 16:17:30
313

原创 工作学习日志/Bug集锦
16.04.11python处理文件时,最好用for逐行读取,不要贪图省事用read().split("\n").因为有些文本的末尾会有\n,这样split之后列表最后会有个空的元素。一不注意就会产生麻烦
2016-04-11 22:48:01
442

原创 My SkillTree
1 数据结构和算法 排序算法 数据结构 高级算法 数据挖掘算法2 技术能力 语言 Python ★★★ Java ★★ C ★★ Scala ★
2016-04-06 11:57:06
566
原创 Docker入门指南
花了一天学完docker后感觉google上搜出的各种教程又乱又不全,便梳理了一下按自己的学习习惯写了一篇,写完之后感觉此文才是最适合初学者的有木有!!!!操作简单又容易理解,基本指令和操作应有尽有,且当自娱自乐,自认可以完爆所有,完美上手
2016-05-31 17:06:28
461
原创 栈(未通过poj验证)
#include #include typedef int type;typedef struct linkedlist{type data;struct list *next;}linkedliststruct,*linkedlist;typedef struct stack{int size;struct list *top;}s
2016-05-12 17:05:21
385
原创 二分查找(未通过poj验证)
#include #define LENGTH 10000void swap(int* a,int x,int y){ if (x == y) return; a[x] ^= a[y];a[y] ^= a[x];a[x] ^= a[y];}void print(int* a,int x,int y){ int i; for (i = x; i < y+1
2016-05-12 17:04:32
422
原创 hadoop处理日志 统计分析每天出现ip次数最多的前3条
package AnalysisLog;import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.ut
2016-05-03 12:01:53
2706
原创 01背包和完全背包代码
注意返回条件和返回值即可#include #define MAX_LENGTH 10000int wl[] = {2,4,3,1};int vl[] = {3,6,5,2};int length = 3;/*int way[MAX_LENGTH][MAX_LENGTH] = {};void get_way(){}*///01背包,每种最多选择一次int ca
2016-04-28 14:03:23
600
原创 面试经历和总结
美团1面让我做了个自我介绍后,出了个数据结构的题,单链表的转置,基本没什么问题。然后我围绕简历上写的项目和技术点进行介绍。没什么大问题就过涉及机器学习的时候有些理论不是很了解,面试官也等我反应完后细致的给我解释了一下.最后让我写了个SQL坐着等一会2面来了个看起来有点凌厉的女性看了下那个SQL,惯例让我自我介绍后,然后开始针对我简历上的一些东西提知识点和原理(我以为此人不懂技术,是
2016-04-27 11:16:42
382
原创 二叉树的遍历、计算、查找
#include #define STACKSIZE 100#define QUEUESIZE 100//定义树的结构//typedef tree* pTree;typedef struct Tree{ char data; struct Tree *lchild,*rchild; int visited;}Tree,*pTree;//用前序遍历数组生成树int i =
2016-04-26 11:50:57
323
原创 基数排序思想和代码
把每个数映射为一个结构体,添加一个位数值的属性,然后从最低位到最高位按此位的值对这组数排序。排序可使用计数排序(因为待排值都分布在很小的区间内)此代码已A过 POJ2388#include #define LENGTH 1000001#define MAXNUM 10int a[LENGTH];int count[MAXNUM];struct{ int digit;
2016-04-21 16:02:03
556
原创 桶排序
#include #include #define LENGTH 10000001int a[LENGTH];void print(int* a, int x, int y) { int i; for (i = x; i < y + 1; i++) printf("%d ", a[i]); printf("\n");}struct bucket { int key;
2016-04-21 15:36:19
248
原创 面试题:从n个数中选出前k大的数
从n个数中选出前k大的数1.使用冒泡或者选择排序 kn2.使用大根堆排序或者快速排序 nlgn3.使用计数排序(数组分布在一个很小的区间时)或者基数排序或者桶排序 n4.维护一个长度为k的有序数组,或者容量为k的小根堆 klgk+(n-k)lgk = nlgk5.使用快排思路 一直取一个数划分 直到左边的数量大于k为止 n+n/2+... = 2n
2016-04-15 15:01:14
2274
原创 LCS
#include #include #include #define MAXN 9999int num[MAXN][MAXN];int step[MAXN][MAXN];char res[MAXN];void get_lcs(char s1[],char s2[],int i,int j){ int m = num[j][i]-1; while(i>=0&&j>=
2016-04-12 17:52:42
275
原创 贝叶斯定理和贝叶斯分类
根据 贝叶斯定理:由先验概率和可能性函数得出后验概率P(A|B) = P(A) * P(B|A)/P(B)得出贝克斯分类器计算公式P(C|F1F2...Fn) = P(C) * P(F1F2F3...Fn)/P(F1F2F3...Fn)其中C为类别,F1...Fn为特征而对某一样本 P(F1F2F3...Fn)是固定值所以只需要计算P(C)* P(F1F2F3.
2016-04-12 16:46:50
499
原创 线性排序复杂度比较
计数排序:若有n个数,这些数共有M个值。则O(n)约为 3n+M 即O(n) = n+M;空间复杂度 n+M基数排序:分别对数字的每一位进行排序若有n个数,这些数最高有d位,每个位最多有M个值(一般十进制运算M为10)。则O(n)约为d(3n+M)当M=10时即O(n) = dn ;所以计数排序适合数据分布在一个较小的区间内
2016-04-11 12:03:28
471
原创 TF-IDF判重算法在小规模和大规模数据集上的应用
1.将所有文档读入内存,对每篇文章分词,并保存每篇文章中每个词出现的频度(TF)和每篇文章出现过的所有词(用来计算IDF)2.统计所有文档出现过的所有词作为语料库,对每个词计算词频作为IDF值1.将content分词后用\t分割 保存在本地2.以每10W个文档为一个分片,对每篇文章
2016-04-07 15:11:12
1745
原创 快排代码
#include #define LENGTH 10000void swap(int* a,int x,int y){ if (x == y) return; a[x] ^= a[y];a[y] ^= a[x];a[x] ^= a[y];}void qsort(int* a,int p,int r){ if(p in
2016-04-07 09:37:20
659
原创 单链表的操作和2种反转方法
#include #include #include #include #include #include #include #define OK 1#define ERROR 0typedef int Status;typedef int ElemType;typedef struct Node{ ElemType data; struct Node *next;
2016-04-06 15:16:47
368
原创 python匹配文本中全角符号的两种方法
在对文本进行处理的时候经常会遇见要对括号和标点进行匹配常见的英文(半角)符号如( ) 直接用正则匹配即可但是遇见全角字符(中文括号、标点),直接用正则匹配会存在问题:因为编码一般为utf8,若直接匹配,中文括号的3字节编码会和一些中文的字节编码重复,产生意想不到的结果若用decode转为unicode编码,则可避免产生错误结果,但也无法直接用正则匹配到经过试验,发现最佳解决方法
2016-03-31 15:04:02
12641
1
原创 python tips
for line in fin: lines = line.strip().split('\t')先如今直接可以简化写成for line in fin: lines = line.split()还有l = [5:15]那么 ll[0:20] 便等于l[5:15]会自动作边界检查
2016-03-11 16:14:30
241
原创 ElasticSearch安装指南
1.官网下载eswget https://download.elastic.co/elasticsearch/elasticsearch/elasticsearch-1.6.0.tar.gz2.解压tar zxf elasticsearch-1.6.0.tar.gz3.修改启动配置文件cd elasticsearch-1.6.0vim config/elasticsearc
2016-03-11 11:56:45
307
原创 kmeans++算法流程
1 输入n个点2 随机一个点做seed13 计算其余点和seed1的距离,以距离远近为正比计算概率,产生下一个seed4 重复3,获得k个seed5 把每个点划分到最近的中心(分簇)6 计算每个簇的中心,作为新的中心7 重复 5,6,直到任意中心移动距离小于阈值(或重复M次)
2016-03-09 20:24:48
3151
原创 在数组中交换变量的陷阱
写快排后发现结果不对有一个数莫名其妙的为0看了整整一天代码 都没发现问题后来一点点跟踪 最终发现swap的结果不对,电光火石间明白了为了追求逼格,在swap变量的时候我使用了异或但是以前看到过,用异或交换数组中变量的时候,如果数组下标相同,则相当于一个数连续对自己做了三次或运算,结果会导致这个数变成0真是好坑啊
2016-03-01 17:08:36
532
原创 python处理excel
最近需要帮助数据部门将一个文件下的多个excel文件合成为一个之前在网上找了个excel宏改了下给他们 但是毕竟不是自己写的 给他们用起来会有很多不方便的地方没法改又不会VB 于是打算用python写个小脚本 本来觉得挺简单 一个小时就能搞定结果越来越发现是个深坑…………由于之前也用python操作过过excel,就自然的用xlrd和xlwt开始处理。发现xlrd只能打
2016-02-26 14:48:10
730
原创 vim 不同文本间的复制
http://www.cnblogs.com/jianyungsun/archive/2011/03/19/1988855.html
2016-02-04 11:14:19
368
原创 在命令行下将mysql查询结果导出到文件
#mysql -uroot -p123 -Dcrawl#select bids_company_view.company_name,bids_company_view.url,company.city,company.province from bids_company_view left join company on bids_company_view.id = company.i
2016-02-04 11:13:44
670
原创 Python类的地址
今天写单例模式 发现一个奇怪的问题class A(): passp1 = A()p2 = A()print p1,p2print A(),A()如图,第一个print输出的地址是不同的。没有问题。但是第二个print输出的地址相同。这一点就很奇怪了。下去和同事讨论了一下,大概是因为GC机制导致的,匿名对象使用完毕之后再调用相同的匿名对象,引用
2015-12-18 15:23:54
1252
原创 论Python的单例模式和装饰器
TN的人问到我怎么实现。我只大概记得是在一个类中定义一个指向为NULL的变量。然后去创建这个类的对象。如果这个对象为空,就新实例化该类的对象,否则就什么也不做。然后返回这个变量。他又问我怎么去传递引用。我一下子就不知道怎么说了(因为没写过)。这几天查了一下相关资料总算有了实际的概念。在类中定义一个方法,这个方法去检查和实例化这个变量。但是有两点要注意。一是这个方法应该用类名去直接调用,所以要用
2015-12-17 16:43:44
954
原创 字符串相同字符长度却不同?
不多说 看图就明白 继续踩坑不同形式获取的字符串 打印出来是一样的 比较长度却没法比 在比较之前先统一encode一下就好了
2015-12-03 10:42:13
1626
原创 python处理文本又一坑--又是编码
情况是从数据库读取content 然后拿正则去匹配电话号码89个匹配 匹配成功了88个 有一个怎么看都应该匹配成功的 一度以为是正则写坏了 看了很久都找不出问题 然后把它复制到程序里 却一下就匹配了出来百思不得其解经过EAST大神点拨,将从数据库查出的content 用utf8 encode了一下 直接就ok了元那里看起来一模一样的字符 unicode和utf8也是不一样的……
2015-11-30 12:24:40
338
原创 python模版
最近代码的重复量太高了 找个时间整理一下 生成一个方便的模块模板#!/usr/bin/env python#-*- coding: utf-8 -*-import sysreload(sys)sys.setdefaultencoding('utf-8')import os,traceback,loggingimport multiprocessingimport re
2015-11-19 12:01:33
280
原创 python 多进程共享变量
现在要读取多个数据文件从中抽取数据将结果合并(相当于word count)方法一是常规的分多线程分别处理数据输出,最后定义一个字典遍历输出文件将结果集合并方法二是先定义结果集字典,然后多线程处理数据,放入字典的时候加上同步锁以为方法二会比方法一快的多 因为省去了大量的IO,只在合并结果的时候加锁然而测试之后发现同步锁反而是最大的瓶颈测试20W数据,抽取某
2015-11-19 11:31:05
8177
原创 python进程池与元组
刚接触python时 看朋友写的代码 pool.apply_async(func,(x,))他告诉我第二个括号里是参数,逗号一定不能省然而在后来的使用中,发现不写这个,形如pool.apply_async(func,(x,y)) 也不会错也就渐渐认为他在胡说,后面要不需要有逗号然而今天调试共享变量,用到了pool.apply_async(func,(x,)) 发现进程池莫名
2015-11-17 21:40:54
467
原创 数据类型范围
int一占4字节 用32位 表示范围约+-21亿long在32位机器上是4字节 在64位是8字节c中可以用 __int64 或者 long long 表示64位的int用 %lld 或者%I64d输出 表示2^n 应用1dev-c编译器使用gcc核心
2015-11-16 10:40:22
250
原创 奇怪的坑。。
用python写了个lcs。然后拿另一个程序导入这个模块去算直接卡死然后拿lcs模块本身的main方法去掉秒出见鬼没办法用c又写了一遍 用python去掉却发现c计算出的值return 回python后完全不对查都查不出来真是蛋疼……
2015-11-09 22:13:53
244
原创 c的两个坑:多个变量的定义和数组越界的访问
第一个是变量的定义 int a,b = 3,4编译都通过不了 int a,b;a,b=3,4别想着通过编译就没事了但是其实只给等号两边做了操作 其他都无视了……第二个是数组访问越界 不会报错 但是会输出随机地址的值吧……写个归并用了6个小时……想想也是醉了……本来就没学过c 高级语言用多了再用这个 真是太棘手了抽空慢慢看吧 yeap!~
2015-10-17 22:24:13
420
原创 如果你操作文件夹时出现莫名其妙的错误
比如这个…………我在遍历一个文件夹做统计的时候突然报了这个错 甚至报的这个错也都怎么搜都搜不到一度让我怀疑是putty的问题不得己把输入一个个print检验最后突然考虑到是不是读取了不该读的文件果然发现 文件夹下多了一个.swp文件!这才想起 当时为了检验一个文本 用tmux打开了其中一个文件 也一直没有退出而vim在打开文件的时候会自动生成.swp
2015-10-17 18:01:36
641
原创 如果你百度搜索一个实现方法……
别忘了看完全文一定要耐心看下文!一定要耐心看下文!一定要耐心看下文!搜索二维数组的实现,点开看完一行直接关掉拿来用,写LCS发现结果不对,百思不得其解,用了整整半天翻来覆去的检验算法,最后总感觉数组本身有问题。检验了一下发现果然如此……再点开这个链接之后发现在第一步声明数组的时候就是个错误……http://www.cnblogs.com/btchen
2015-10-15 15:12:47
391
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人