2014年4月19日

[原]求解一道腾讯笔试题(帮帮忙)

摘要: 大家帮帮忙。 题:关键码序列(Q,H,C,Y,Q,A,M,S,R,D,F,X),要按照关键码值递增的次序进行排序,若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是FHCDQAMQRSYX。 题目答案应该是正确的(好多年前的考研题).但是我有个疑问,感觉题目是不是有多个答案。因为排序算法有多个实现版本。多个版本导致第一趟的结果不同,但最终结果是一样的。 1... 阅读全文

posted @ 2014-04-19 22:07 狼牙灬月 阅读(184) 评论(0) 推荐(0) 编辑

2014年4月16日

[原]《面试题精选》14.圆圈中最后剩下的数字

摘要: 题目:n个数字(0,1,…,n-1)形成一个圆圈,从数字0开始,每次从这个圆圈中删除第m个数字(第一个为当前数字本身,第二个为当前数字的下一个数字)。当一个数字删除后,从被删除数字的下一个继续删除第m个数字。求出在这个圆圈中剩下的最后一个数字。 分析:这是一道约瑟夫环问题。思路就是按照提中的步骤去执行,很明显用到的数据结构是循环双向链表,关键是循环双链表的实现。见:... 阅读全文

posted @ 2014-04-16 20:20 狼牙灬月 阅读(242) 评论(0) 推荐(0) 编辑

[原]《面试题精选》13.第一个只出现一次的字符

摘要: 题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。 分析:首先拿到一到数据结构算法题,你会先想到什么?必然是我们要利用到什么数据结构来解决这道问题。首先想到的肯定是链表,栈,队列,可以吗?想了很久感觉不行,然后我又想到用各种树,感觉时间复杂度还是不好。最后,好吧,不会做。怎么办,看答案呗。然后发现,我ri,hash表,竟然忘了这东西... 阅读全文

posted @ 2014-04-16 16:49 狼牙灬月 阅读(196) 评论(0) 推荐(0) 编辑

[原]《面试题精选》12.求二元查找树的镜像

摘要: 题目:输入一颗二元查找树,将该树转换为它的镜像,即在转换后的二元查找树中,左子树的结点都大于右子树的结点。用递归和循环两种方法完成树的镜像转换。 例如输入: 8 / \ 6 10 /\ /\ 5 7 9 11 输出: 8 / \ 10 6 /\ /\ 11 ... 阅读全文

posted @ 2014-04-16 14:54 狼牙灬月 阅读(140) 评论(0) 推荐(0) 编辑

2014年4月15日

[原]《面试题精选》11.链表中倒数第k个结点

摘要: 题目:输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。链表结点定义如下: struct ListNode { int m_nKey; ListNode* m_pNext; }; 分析:这道题算是简单的了,很容易想到用到两个指针,因为用一个指针的话你必须要遍历链表两遍,所以用到两个距离为k的指针来实... 阅读全文

posted @ 2014-04-15 23:24 狼牙灬月 阅读(154) 评论(0) 推荐(0) 编辑

[原]《面试题精选》10.给一个有序数组和一个数s,求数组中两数和等于s的组合

摘要: 题目:已知一个有序递增的数组array和一个数s,请找出两个数字之和等于s的两个数。如果右多个这样的组合,则只需要输出一个就行。 例如,如果数组array={1,2,4,7,11,15},数s=15,请输出4和11,因为4+11=15 分析:首先我们会想到肯定要遍历这个数组,我们都知道不管你利用那种算法遍历,最坏情况下最好的时间复杂度都是O(n)。也就是遍历一次数组... 阅读全文

posted @ 2014-04-15 21:54 狼牙灬月 阅读(1987) 评论(0) 推荐(0) 编辑

2014年4月10日

[原]《Thinking in Algorithm》12.详解十一种排序算法

摘要: 排序算法在算法中占着很重要的地位,很多算法的实现都是基于排序算法的(如搜索算法和合并算法)。所以排序算法也是笔试面试中必考内容。但是不管他怎么考,也就是那几种算法,一般不会超出我接下来要讲的这11种,所以只要认真的掌握着11中就足够了。 那么是哪11种呢,下面是wiki上总结的11种 1 Simple sorts 1.1 Insertion sort(插入排序)... 阅读全文

posted @ 2014-04-10 01:33 狼牙灬月 阅读(271) 评论(0) 推荐(0) 编辑

2014年4月8日

[原]《Thinking In Algorithm》11.堆结构之二叉堆

摘要: 之前有篇博客(操作系统中堆和栈的区别)讲的是操作系统中的堆,顺带提了下数据结构中的堆。觉得比较简单就没详细讲解,不过这几天看排序算法看到堆排序时,感觉对堆都不怎么熟悉,有些细节问题没注意到。所以说不要小看任何一个知识点。而且经过细看才发现堆其实有很多精妙之处,怪不得很多算法都靠它来实现,如堆排序,Dijkstra算法。 而且堆有许多变体,如二叉堆,二项堆,斐波那契堆。这... 阅读全文

posted @ 2014-04-08 10:52 狼牙灬月 阅读(169) 评论(0) 推荐(0) 编辑

2014年4月5日

[原]《面试题精选》09.不用for,while,if等关键字求1+2+...+n

摘要: 题目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C)。 分析:很显然,这道题的解法非常多,思路大家都知道, 对于解高斯数列和的问题,除了用公式外,无非就是用循环或者递归。但循环要用到for或者while,而递归肯定要用到判断语句,那么就会使用到if。 说到这大家肯定会认为唯一求解... 阅读全文

posted @ 2014-04-05 22:34 狼牙灬月 阅读(285) 评论(0) 推荐(0) 编辑

[原]java编程思想中总结的C++与java的区别

摘要: (1) 最大的障碍在于速度:解释过的Java要比C的执行速度慢上约20倍。无论什么都不能阻止Java语言进行编译。写作本书的时候,刚刚出现了一些准实时编译器,它们能显著加快速度。当然,我们完全有理由认为会出现适用于更多流行平台的纯固有编译器,但假若没有那些编译器,由于速度的限制,必须有些问题是Java不能解决的。 (2) 和C++一样,Java也提供了两种类型的注释。... 阅读全文

posted @ 2014-04-05 16:07 狼牙灬月 阅读(207) 评论(0) 推荐(0) 编辑

导航