- 博客(123)
- 资源 (26)
- 收藏
- 关注
原创 整形数组中只出现一次的数字(剑指Offer,九度OJ)
题目链接:http://ac.jobdu.com/problem.php?pid=1351 ,剑指Offer P211。题目:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。解题思路:看到这个题的时候,大家通常会利用比较普通的解法,先对数组排序,然后再遍历一篇,但是题目要求时
2013-11-26 17:14:28 1908
原创 字符串最小周期串问题
问题描述:如果一个字符串可以由某个长度为n的字符串重复多次得到,则该串以n为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过100的串,输出它的最小周期。样例输入:ChinaChinaChina样例输出:5问题分析:字符串可能有多个周期,但是只需求出最小的一个。可以从小到大枚举各个周期(即从1到字符串大小),一旦符合条件就
2013-11-26 11:05:04 6713 4
原创 用 python 实现 各种排序算法
归并排序归并排序也称合并排序,是分治法的典型应用。分治思想是将每个问题分解成个个小问题,将每个小问题解决,然后合并。具体的归并排序就是,将一组无序数按n/2递归分解成只有一个元素的子项,一个元素就是已经排好序的了。然后将这些有序的子元素进行合并。合并的过程就是 对 两个已经排好序的子序列,先选取两个子序列中最小的元素进行比较,选取两个元素中最小的那个子序列并将其从子序列中
2013-11-24 23:11:46 2387
原创 使用xrdp实现windows 远程桌面 ubuntu linux
一般情况下我们用ssh客户端远程登陆Linux系统,至于图形界面下的linux远程登陆工具,我们一般都会想到vnc,但它的安全性不够,在这里,我将介绍XRDP的安装配置方法。我们可以很方便的通过windows远程桌面 linux。xrdp安装配置方法打开终端:依次安装sudo apt-get install xrdpsudo apt-get install vnc4serv
2013-11-20 16:05:40 87249 17
原创 c++ 容器、继承层次、句柄类
一、容器与继承在容器中保存有继承关系的对象,如果定义成保存基类对象,则派生类将被切割,如果定义成保存派生类对象,则保存基类对象又成问题(基类对象将被强制转换成派生类对象,而派生类中定义的成员未被初始化)。唯一的可行的选择是容器中保存对象的指针。但是需要用户管理对象和指针。C++中一个通用的技术是包装类(cover)或句柄类(handle)。用句柄类存储和管理类指针。句柄类大体上完成
2013-11-17 21:37:22 3290
原创 使用 PyInstaller 把python程序 .py转为 .exe 可执行程序
最近使用Python为项目开发一款绘图工具(绘出 声场三维模型)。因为希望能把Python脚本发布为脱离Python平台运行的可执行程序,比如单个的exe文件。 PyInstaller恰满足这个需求。本文PyInstaller的版本是2.0,支持Python2.7。下面讨论怎样安装,使用PyInstaller。PyInstaller本身并不属于Python包。 在安装 pyins
2013-11-12 14:06:16 30850 6
原创 leetcode Combination Sum 使用集合中的元素求和得到目标值
http://oj.leetcode.com/problems/combination-sum/题目:Given a set of candidate numbers (C) and a target number (T), find all unique combinations in C where the candidate numbers sums to T.
2013-10-29 19:50:40 1828
原创 动态规划 LCS 求两个序列A,B中所有的最长公共子序列
动态规划 求两个序列A,B中所有的最长公共子序列 第一部分、什么是动态规划算法 动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成子问题来解决。动态规划算法分以下4个步骤:1,描述最优解的结构2,递归定义最优解的值3,按自底向上的方
2013-10-22 21:18:17 6182 1
原创 effective c++条款12:复制对象别忘其每一个成分
copying函数一般有两个:copy 构造函数 和 copy assignment(赋值操作)如果我们自己去实现copy而不用编译器默认的,我们就要认真复制对象的每一项,包括基类的东西。记住:当你编写一个copying函数,请确保1.复制所有的local成员变量;2.调用所有的base class内的适当的copying函数。当这两个copying
2013-10-21 23:00:01 1455
原创 线段树
线段树(Segment Tree)是一种二叉搜索树,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。对于线段树中的每一个非叶子节点[a,b],它的左子树表示的区间为[a,(a+b)/2],右子树表示的区间为[(a+b)/2+1,b]。因此线段 树是平衡二叉树。叶节点数目为N,即整个线段区间的长度。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(
2013-10-19 16:59:21 1692
原创 HDOJ 1711 (用KMP解决)
hdoj 1711 Number Sequence: http://acm.hdu.edu.cn/showproblem.php?pid=1711此题利用KMP算法即可解决。状态转移图的构造是KMP算法的关键,算法的思想是“用自己匹配自己”根据f[0], f[1],f[2],f[3],...f[i-1] 递推f[i] 。注意审题,刚开始数组开小了,一直报错 wrong ans
2013-10-19 16:56:41 1654
原创 杭电OJ 1251 、1671(字典树)
杭电OJ 1251题目传送门:1251 统计难题:http://acm.hdu.edu.cn/showproblem.php?pid=12511671,Phone List: http://acm.hdu.edu.cn/showproblem.php?pid=1671用标准的Trie树即可解决。字典树单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。
2013-10-19 16:55:03 1770
原创 hive 集成hbase 笔记
Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,
2013-10-16 22:36:35 11176
原创 常见数据结构和算法 的可视化
旧金山大学的 David Galles做的各种可视化的数据结构和基本算法的主页,网址在这里,大家可以看看。基础Stack栈: 数组实现Stack栈: 链表实现Queues队列: 数组实现Queues队列: 链表实现Lists列表: 数组实现 ( java 版演示)Lists列表: 链表实现 ( java 版演示)索引Binary Search Trees 二叉检索树AV
2013-10-09 19:25:47 4404 2
原创 Nginx源码学习(三) nginx进程模型
一,nginx进程模型nginx的进程模型和大多数后台服务程序一样,按职责将进程分成监控进程和工作进程两类,启动nginx的主进程充当监控进程,而由主进程fork出来的子进程则充当工作进程。工作进程的任务自然是完成具体的业务逻辑,而监控进程充当整个进程组的对外接口,同时对工作进程进行监护,比如如果某工作进程意外退出,监控进程将重新fork生成一个新的工作进程。nginx也可以单进程
2013-10-09 17:37:57 3366
原创 HTTP中Get与Post
http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。1
2013-09-26 11:34:03 1991
原创 nginx源码学习(二) 内存池结构 ngx_pool_t
1,Nginx的内存池介绍 为了方便系统模块对内存的使用,方便内存的管理,nginx自己实现了进程池的机制来进行内存的分配和释放, 首先nginx会在特定的生命周期帮你统一建立内存池, 当需要进行内存分配的时候统一通过内存池中的内存进行分配,最后nginx会在适当的时候释放内存池的资源,开发者只要在需要的时候对内存进行申请即可,不用过 多考虑内存的释放等问题,大大提高了开发的效率
2013-09-13 17:24:23 5790 5
原创 hadoop 完全分布式 下 datanode无法启动解决方法
问题描述:在集群模式下更改节点后,启动集群发现 datanode一直启动不起来。我集群配置:有5个节点,分别为master slave1-5 。在master以hadoop用户执行:start-all.shjps查看master节点启动情况: NameNode JobTracker Secondary
2013-09-01 19:23:36 19661 1
原创 linux 多线程编程笔记
一, 线程基础知识1,线程的概念线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。2,线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代
2013-08-31 17:18:34 2373 1
原创 Nginx 源码学习(一) nginx的跟踪与调试
在学习优秀的源代码时是 少不了源码的跟踪与调试,它不仅是我们解决程序bug的有效途径 也是我们理解、学习优秀源码的有效途径。本文主要介绍一些源码调试的方法,并结合Nginx 源码进行示例。1, 利用GDB调试 a,首先你应该熟悉 GDB 调试的一些基本命令(不熟悉的移步 至 用GDB调试程序 ,熟悉step,run,break,list,info,continue等
2013-08-24 19:48:54 10878 2
原创 字典树 Trie 的实现
Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。它有3个基本性质:1、根节点不包含字符,除根节点外每一个节点都只包含一个字符。2、从根节点到某一节点,路径上经过的字符连接起来,为该节点对应的字符串。3、每
2013-08-06 17:13:36 3341
原创 二叉搜索树 c 语言实现
一、介绍二叉搜索树(Binary Search Tree),或者是一棵空树,或者是具有下列性质的二叉树:1,若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2,若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3,它的左、右子树也分别为二叉搜索树。二叉搜索树的查找过程和次优二叉树类似,通常采取二叉链表作为二叉搜索序树的存储结构。中序遍历二叉搜索树可得到
2013-08-06 16:36:24 3735
原创 使用 python Matplotlib 库绘图
Matplotlib的安装可以参见 官网链接 http://matplotlib.org/users/installing.html下面总结步骤如下:windows 注意下载.exe格式 直接安装。1,python 下载地址。2,安装最新版的Matplotlib,下载地址。3,Matplotlib要求的Python版本是2.7或者更高版本,下载地址。下面安装Matp
2013-08-02 12:59:21 55647 32
转载 调试器工作原理——基础篇
From:http://eli.thegreenplace.net/2011/01/23/how-debuggers-work-part-1/How debuggers work: Part 1 – BasicsJanuary 23rd, 2011 at 7:40 amThis is the first part in a series of articles on how
2013-07-31 20:30:36 2529
原创 MySQL数据库定时备份Shell脚本并备份至其它机器方法
这是一个简单的MySQL数据库备份shell脚本,适用于单台Linux服务器或者VPS的mysql数据库备份工作,工作原理是使用mysql的mysqldump工具来导出数据库为.sql文件,然后将所有导出的文件打包归档。然后我们在shell脚本中使用 scp命令把备份文件复制到另外一台备份机器,由于scp每次传送文件要密码因此我们需要使用 expect插件或者利用密钥。在这里介绍采用生
2013-07-21 10:03:12 8575 1
原创 linux 下 命令行 mail 发邮件方法
1. 最简单的方法: mail -s textdanewang@mail.ustc.edu.cn这条命令的结果是发一封标题为text的空信给后面的邮箱,但是往往这类邮件会被当成垃圾邮件来处理,所以如果没有收到邮件,建议打开垃圾箱来查看一下.第一种方法,你可以把当前shell当成编辑器来用,编辑完内容后Ctrl-D结束。2,实用的mail发送方法。
2013-07-19 20:07:22 14804 2
原创 shell 学习笔记
shell 脚本语言是一种解释型语言;shell脚本的实质是 shell命令的有序集合;1 shell编程的基本过程 1)建立shell文件 2)赋予可执行的权限 chmod a+x filename 3)执行shell文件 ./filename2 shell 变量 1)用户自定义变量 命名规
2013-07-10 21:55:28 3439 1
原创 UNP 客户/服务器 程序设计范式 笔记
1,TCP/IP协议概述首先回顾一下TCP/IP模型,并知道各个层次在操作系统的哪一个层次; 看上图,OSI模型的底下两层是随系统提供的设备驱动程序和网络硬件。通常情况下,除需知道数据链路的某些特性外,我们不用关心这两层的情况。网络层由IPv4和IPv6两个协议处理,可以选择的传输层有TCP或UDP。OSI模型的顶上三层被合并为一层,称为应用层,这就是web客户(
2013-07-08 15:23:54 2246
原创 Hbase的安装及配置、eclipse 操作示例
下面说明Hbase ubuntu12.04上的安装,假设在安装Hbase前你已经正确安装了Hadoop(可以参见以前的博文). 1.1下载解压最新版本选择一个 Apache 下载镜像:http://www.apache.org/dyn/closer.cgi/hbase/,下载 HBase Releases. 点击 stable目录,然后下载后缀为 .tar.gz 的文件; 例如 h
2013-07-01 17:19:59 3232
原创 linux 进进程间通信(IPC) 之共享内存
共享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。这是因为所有进程共享同一块内存,共享内存在各种进程间通信方式中具有最高的效率。访问共享内存区域和访问进程独有的内存区域一样快,并不需要通过系统调用或者其它需要切入内核的过程来完成。同时它也避免了对数据的各种不必要的复制。例如 两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空间。进程A可
2013-06-27 20:36:27 2165
原创 UWSGI + Nginx 部署 Flask web 应用
首先,我用的Flask是0.9版本的,uwsgi是1.9.6版,nginx是1.1.19版本。操作系统我用的是ubuntu12.041)安装Flask,uwsgi,nginxFlask:sudo apt-get install python-flaskuwsgi:至于部署方式可以采用,uWSGI,http://projects.unbit.it/downlo
2013-06-10 12:12:32 6589 1
原创 Nginx 源码学习 简单的数据类型
简单的数据类型下载nginx 1.0.14源码。解开nginx的代码后,在src目录下发现有如下的几个目录 core event http mail misc os其中 : core : 该目录存放core module的代码,也是nginx服务的入口 http : http core module 的代码,nginx作为web/http proxy serve
2013-06-09 11:42:35 2415
原创 <<代码阅读>> 读书笔记
最近在看一本叫做 代码阅读的书籍, 阅读别人的代码也是一种提高自身能力的好的途径。参见文章我为何爱读代码?你为何也应当爱? 以及Read Great Programs 第三章:高级C数据类型 1,在 c/c++ 中 指针类型(其实就是一个内存地址)的参数常用来避免函数调用过程中大型数据元素的复制开销。常常以const 声明符来标示 为了高效而采用引用方式传递参
2013-06-04 22:43:22 1516
原创 我的新站点,欢迎访问
最近用 python 下的 flask 框架 做了一个 个人网站,并且利用nginx + uwsgi在自己的 机器上搭建成功,欢迎访问 请猛戳这里
2013-05-05 10:10:43 1978 1
原创 django Mezzanine uwsgi nginx 配置
1, mezzanine介绍mezzanine就是一个基于Django框架的应用, 详细可以参考官方网站:http://mezzanine.jupo.org/2, Mezzanine 安装指南:# Install from PyPI$ pip install mezzanine# Create a project$ mezzanine-project myproject
2013-04-26 17:22:54 4560
原创 Hadoop 在linux 单机上伪分布式 的安装
1,安装JDKsudo apt-get install openjdk-6-jdk2,配置JAVA 环境变量输入命令:sudo gedit /etc/profile打开profile 在文件最下面加入如下内容:# set java homeexport JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-i386/
2013-04-21 13:03:28 2031
原创 ubuntu linux Django 安装 及 创建简单 的web示例
下载Django之前你要确保你的系统安装了python,在终端输入python,看看是否安装了python ctrl + c ,退出。若是没有安装则,安装:sudo apt-get install python1, 下载 Django ,请转到此页面 https://www.djangoproject.com/download/我下载的的是Django-1.5.1 版本。ta
2013-04-18 11:31:09 9599
原创 linux ubuntu 下telnet服务 配置 及 ssh 设置
<!--@page {margin:2cm}pre {direction:ltr; color:#000000; text-align:justify; widows:0; orphans:0}pre.western {font-family:"DejaVu Sans Mono","MS Gothic",monospace}pre.cjk {font
2013-04-12 10:01:02 2105
转载 编写并使用程序库
编写并使用程序库差不多可以认为,每个程序都链接到一个或几个库上。任何一个使用了C函数(诸如 printf 等)都须链接到C运行时库。如果您的程序具有图形界面(GUI),它将被链接到窗口系统的库。如果您的程序使用了数据库,数据库供应商会提供给您一些简化访问数据库的库。在这些情况中,您必须作出选择:静态(statically)还是动态(dynamically)地将程序链接到库上。如果您选择
2013-04-07 20:04:56 1767
viminstall.tar.gz
2015-12-28
rmtrash.zip
2015-08-20
jedis-2.4.2.jar
2014-05-16
pywin32-218.win32-py2.7
2013-11-12
一键安装 ctags和cscope的方法
2013-04-17
Proxy源代码
2013-03-19
c语言实用程序150例
2009-10-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人