摘要: 1.已知链表的头结点head,写一个函数把这个链表逆序[cpp]viewplaincopyvoidList::reverse(){list_node*p=head;list_node*q=p->next;list_node*r=NULL;while(q){r=q->next;q->next=p;p=q;q=r;}head->next=NULL;head=p;}递归方法:[cpp]viewplaincopyvoidList::reverse2(list_node*curnode){if(curnode==NULL)curnode=head;if(curnode->n 阅读全文
posted @ 2013-05-23 18:56 simon1024 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 12345678910111213141516171819202122232425262728293031structBinaryTreeNode{intvalue;BinaryTreeNode*left,*right;};booldoestree1havetree2(BinaryTreeNode*root1,BinaryTreeNode*root2);boolhassubtree(BinaryTreeNode*root1,BinaryTreeNode*root2){//noticethatresultisstaticstaticboolresult=false;if(root1!=NULL& 阅读全文
posted @ 2013-05-23 18:53 simon1024 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 常用插件:minibufexpl.vimtaglist.vimwinfileexplorer.vimwinmanager.vimwintagexplorer.vim12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810 阅读全文
posted @ 2013-05-23 18:50 simon1024 阅读(233) 评论(0) 推荐(0) 编辑
摘要: GivenaBST(BinarysearchTree)howwillyoufindmedianinthat?Constraints:*Noextramemory.*Functionshouldbereentrant(Nostatic,globalvariablesallowed.)*Medianforevennoofnodeswillbetheaverageof2middleelementsandforoddnooftermswillbemiddleelementonly.*Algorithmshouldbeefficientintermsofcomplexity.中文不需要赘述了,就是二叉搜 阅读全文
posted @ 2013-05-23 18:00 simon1024 阅读(1322) 评论(0) 推荐(0) 编辑
摘要: PythonaddsanextensionsyntaxtoPerl’sextensionsyntax.IfthefirstcharacterafterthequestionmarkisaP,youknowthatit’sanextensionthat’sspecifictoPython.Currentlytherearetwosuchextensions:(?P<name>...)definesanamedgroup,and(?P=name)isabackreferencetoanamedgroup.>>>p=re.compile(r'(?P<wor 阅读全文
posted @ 2013-05-23 17:58 simon1024 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 将一个整数拆分成不重复的整数之和。example:6=1+5=1+2+3=2+4采用递归方法实现。12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182#include<iostream>#include<vector>usingnamespacestd;/**6=1+5=1+2+3=2+4**/voidsplit(i 阅读全文
posted @ 2013-05-23 17:56 simon1024 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核、各种应用服务器等等。日志的内容、规模和用途也各不相同,很难一概而论。本文讨论的日志处理方法中的日志,仅指Web日志。其实并没有精确的定义,可能包括但不限于各种前端Web服务器——apache、lighttpd、tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志。在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志:211.87.152.44–-[18/Mar/2005:12:21:42+0800]“GET/HTTP/1.1″200899“http://ww 阅读全文
posted @ 2013-05-23 17:53 simon1024 阅读(221) 评论(0) 推荐(0) 编辑
摘要: xargs是给命令传递参数的一个过滤器,也是组合多个命令的一个工具。它把一个数据流分割为一些足够小的块,以方便过滤器和命令进行处理。通常情况下,xargs从管道或者stdin中读取数据,但是它也能够从文件的输出中读取数据。xargs的默认命令是echo,这意味着通过管道传递给xargs的输入将会包含换行和空白,不过通过xargs的处理,换行和空白将被空格取代。xargs是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令,下面是一些如何有效使用xargs的实用例子。1.当你尝试用rm删除太多的文件,你可能得到一个错误信息:/bin/rmArgumentlisttoolong.用 阅读全文
posted @ 2013-05-23 17:49 simon1024 阅读(760) 评论(0) 推荐(1) 编辑
摘要: 在看hive源码的时候,因为对log4j不了解而苦于不知道该如何打印log来进行调试。虽然最后我选择了直接使用System.err.println来打印log,但是log4j是一个很好的log框架,在很多多线程系统中都有用到,所以值得花点时间好好学习下。简介:log4j是apache的一个开源项目,是一个流行的javalog框架,如今已经有了c,c++,python,shell等各语言的相关版本,如使用于shell的log4shell.打印log是最简单和最直接的程序调试方法。即便如此,打印log有时却是唯一可以用的程序调试方法,尤其是对于大型的多线程或分布式系统。它们很难通过gdb等工具就进 阅读全文
posted @ 2013-05-23 17:46 simon1024 阅读(431) 评论(0) 推荐(0) 编辑
摘要: 方法一、不用栈void reverseChar(char* str, int len){ char* q = str+len-1; char* p = str; if (!len) return; while( pst;stackword;char*p=str;st.push('\0');while(*p!='\0'){while(*p=='')st.push(*p++);if(*p=='\0')break;while(*p!='\0'&&*p!='')word.push(*p++) 阅读全文
posted @ 2013-05-23 17:42 simon1024 阅读(301) 评论(0) 推荐(0) 编辑
摘要: 问题:求字符串str1,str2的最长公共子串的长度。1.动态规划方法算法:定义二元函数函数f(m,n):分别以str1[m],str2[n]结尾的连续公共子串的长度而对于f(m+1,n+1)有以下两种情况1.str1[m+1]!=str2[n+1],则有f(m+1,n+1)=02.str1[m+1]==str2[n+1],则有f(m+1,n+1)=f(m,n)+1另外f(0,j)=0(j>=0)f(j,0)=0(j>=0)算法的c++代码实现如下:12345678910111213141516171819202122232425262728293031intcommstr(cha 阅读全文
posted @ 2013-05-23 17:40 simon1024 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 作者:July、youwang、yanxionglu。时间:二零一一年三月二十六日说明:本文分为俩部分,第一部分为10道海量数据处理的面试题,第二部分为10个海量数据处理的方法总结。有任何问题,欢迎交流、指正。出处:http://blog.csdn.net/v_JULY_v。第一部分、十道海量数据处理面试题1、海量日志数据,提取出某日访问百度次数最多的那个IP。首先是这一天,并且是访问百度的日志中的IP取出来,逐个写入到一个大文件中。注意到IP是32位的,最多有个2^32个IP。同样可以采用映射的方法,比如模1000,把整个大文件映射为1000个小文件,再找出每个小文中出现频率最大的IP(可以 阅读全文
posted @ 2013-05-23 15:23 simon1024 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 有25匹马,速度都不同,但每匹马的速度都是定值。现在只有5条赛道,无法计时,即每赛一场最多只能知道5匹马的相对快慢。问最少赛几场可以找出25匹马中速度最快的前3名?(百度2008年面试题)每匹马都至少要有一次参赛的机会,所以25匹马分成5组,一开始的这5场比赛是免不了的。接下来要找冠军也很容易,每一组的冠军在一起赛一场就行了(第6场)。最后就是要找第2和第3名。我们按照第6场比赛中得到的名次依次把它们在前5场比赛中所在的组命名为A、B、C、D、E。即:A组的冠军是第6场的第1名,B组的冠军是第6场的第2名……每一组的5匹马按照他们已经赛出的成绩从快到慢编号:A组:1,2,3,4,5B组:1,2 阅读全文
posted @ 2013-05-23 15:21 simon1024 阅读(163) 评论(0) 推荐(0) 编辑