自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 《天才在左疯子在右》

这一天都是昏昏沉沉的,没有精神,晚上重新看了一下这本书,第一次看还是在遥远的大二,那时候觉得非常非常好看,看完后还和某个大神同学讨论,跟他讲里面的案例。其实心理学真的很奇妙,有很多你想不到的有趣案例,精神病人的世界未必就是恐怖怪诞的,有些或许会很温情,就像这本书里面讲的《永远永远》故事,再读还是觉得非常感动,可能因为我爷爷的缘故,他也有几乎差不多一样的经历,不过不是跟我奶奶了,是另外一个人。天才和

2013-04-14 21:05:48 913

原创 我看《送你一颗子弹》

这本书断断续续花了一个多星期给看完了,刚开始觉得刘瑜写的东西很琐屑,读到后面发现其实文字很诙谐,她应该是个很有幽默感的人,有幽默感的人的生活态度和知识面应该不差,再说她也是个大牛的人。政治学博士,第三性别,呵呵其实从她的文字里面,我看到一个小女人,一个理性的、睿智的、幽默大方的、渴望爱的小女人,或许还有很多特质我无法用匮乏的成语来形容。话说回来,她喜欢看电影,而我却不那么热衷花几个小时看电影而宁愿

2013-03-17 21:19:57 668

原创 判断数组中的数值是否连续

#include#includebool IsContinuous1(int *arr,int N){/*整数数列,元素取值为0...65535中任意一个不重复的数,0可以出现多次 1、元素值可以乱序。 2、0可以匹配任何数值。 3、0可以多次出现。 4、全0算连续、只有一个非0也算连续。 */ int min = -1,max = -1; for(int i = 0;i

2013-03-16 13:52:51 1535

原创 编程之美-从无头单链表中删除结点

void DeleteRandomNode(node *pCurrent){//从无头单链表中删除结点 assert(pCurrent != NULL); node *pNext = pCurrent->next; if(pNext != NULL) { pCurrent->next = pNext->next; pCurrent->data = pNext->data;

2013-03-16 12:51:03 662

原创 编程之美-字符串移位包含

int StrInStr1(char *src,char *des){//方法一:穷举src循环移位的字符串组合,每个都跟des比较 int len = strlen(src); for( int i = 0; i < len; ++i) { char tempchar = src[0]; for( int j = 0; j < len - 1;++j) //循环左移

2013-03-16 12:14:11 625

原创 我读《ZOO》、《夏天烟花我的尸体》

乙一的两本知名怪诞小说《zoo》、《夏天烟花我的尸体》都拜读过了,初衷是抱着看恐怖小说的心情去看的,看完了才发现其实不恐怖,用怪诞来形容很贴切。       在卓越上买书的时候一开始是贪便宜买的两本书,都打5折才十几块钱就200多页了,看完才发现虽然期望没有我想的那么高,但是还是有阅读的享受的,算是感觉了另外一种文风吧。看网上的书评是挺好的,说了一大堆的好话、一大堆的有N多专业术语的读后感,到

2013-03-15 22:53:26 1219

原创 找出数组中唯一的重复元素

数组a[N],1至N-1这N-1个数存放在a[N]中,其中某个数重复一次。找出这个数void xor_findDup1(int *a,int N){//方法一:求和 int tmp1 = 0; int tmp2 = 0; for(int i = 0;i < N - 1; ++i) {//tmp1为1...N-1的和,tmp2为数组所有元素的和 tmp1 += (i + 1);

2013-03-15 15:20:20 577

转载 编程之美-最大公约数

int gcd1(int x,int y){//欧几里得辗转相除法 return (!y)?x:gcd1(y,x % y);}int gcd2(int x,int y){//能除的尽x,y的数,也能除的尽x-y,y if( x < y) return gcd2(y,x); if( y == 0 ) return x; else return gcd2(x - y,

2013-03-15 13:44:34 547

转载 判断一个较大的单链表是否有环及求环的入口点

/*判断单链表中是否有环*/struct ListType{ int data; struct ListType *next;};typedef struct ListType *list;int IsLoop(list s){//双指针法 list fast = s; list slow = s; if(fast == NULL) return -1;

2013-03-14 15:13:58 545

转载 编程之美-数组循环移位

#includevoid RightShift1(int *arr,int N,int K){//循环右移 K %= N; while(K--) { int t = arr[N - 1]; for(int i = N - 1; i > 0;--i) { arr[i] = arr[i - 1]; } arr[0] = t; }}void Reverse

2013-03-14 12:39:01 495

原创 编程之美-寻找发帖水王

Type Find(Type *ID,int N){//寻找发帖"水王",假设只有一个 Type candidate; int nTimes,i; for( i = nTimes = 0; i < N; i++) { if(nTimes == 0) { candidate = ID[i]; nTimes = 1; } else { if(candi

2013-03-13 13:10:18 569

原创 编程之美—不要被阶乘吓倒

int FactorialZeroNum1(int N){//N!末尾有多少个0,求1..N各个数的5的因子有多少个 int ret = 0; for(int i = 1 ; i <= N ; ++i) { int j = i; while( j % 5 == 0) { ret++; j /= 5; } } return ret;}int Facto

2013-03-13 12:25:19 529

原创 sizeof(&b)与VC++中的bug

int main(){//2013/3/12//sizeof(&b)在VC++6.0中为400,而在Devc++中则是4,&b的类型是int (*)[100],明显是一个指针,应该是4 int b[100]; int *c = &b; //编译错误 cannot convert `int (*)[100]' to `int*' in initialization int (*a)

2013-03-12 16:05:40 608

原创 在O(n)时间复杂度内找出数组中的众数

bool FindMostApperse(int *num,int len,int &candidate){ int count = 0; for(int i = 0;i < len;++i) { if(count == 0) //目前得到的数出现次数为0时,更换另外一个数 { candidate = num[i]; co

2013-03-12 15:10:32 4945 3

原创 找出数组中重复次数最多的数

#include#include#includeusing namespace std;//以空间换时间int GetMaxNum(int *arr,int len,int &num){//找出数组arr中最大的数及其下标 int index = arr[0]; int i; for( i = 0;i <= len;++i) //注意这里是闭区间,理

2013-03-12 14:40:57 1256

原创 编程珠玑第十四章—堆

习题:5、将箱序列组织成堆,父结点代表了它的子节点中最不满的结点的箱的剩余空间,堆顶应该是最大容量的箱。以”首次适应“启发式方法按序考虑权值,在决定往哪里放新权值时候,尽量往左搜索,只要左边最不满的箱子有足够的空间放该权值就尽量往左,迫不得已才往右。当把权值放入箱子后,箱子容量减少,向下调整使其保持堆性质。这样所需时间正比于O(log(n))。6、让结点i指向i+1和2i结点。就像组织成一

2013-03-12 11:29:42 727

转载 判断两个单链表(无环)是否交叉

bool IsIntersect(Node *list1,Node *list2,Node *&value){//判断两个单链表(无环)是否交叉 value = NULL; if(NULL == list1 || NULL == list2) return false; Node *temp = list1,*temp2 = list2; int len1 = 0,len2 = 0

2013-03-11 20:32:45 558

转载 删除单链表中的重复结点

方法一:递归link delSame(link head){/* 不变式:list{k..n-1}没有重复的元素,加入list{k-1}后,为了保持不变式 要从list{k-1..n-1}两两比较,如果有相同元素必定在开头两个*/ link pointer,temp = head; if(head->next == NULL) return head; head->next =

2013-03-11 20:14:25 906

原创 合并两个有序链表(非交叉)

Node *MergeRecursive(Node *head1,Node *head2){//递归合并两个有序链表 if(head1 == NULL) return head2; if(head2 == NULL) return head1; Node *head = NULL; if(head1->data data) { head = head1; head->

2013-03-11 19:48:15 514

空空如也

空空如也

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

TA关注的人

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