找工作
「已注销」
这个作者很懒,什么都没留下…
展开
-
我们爱面试,一面一学-----谷歌八道面试题--【1】求一个满足要求的数组
这个所谓的面试没有物理存在,只是逻辑上等同于。题目要求如下:整数序列Q中的每个元素都至少能被整数a和b中的一个整除,现给定a和b,请计算出Q中的前n项元素。例如,当a=3,b=5,N=6时,Q序列的前6项元素为3,5,6,9,10,12。(1)设计函数void generate(int a , int b, int N, int *Q)计算Q的前N项。(2)设计测试数据来测试函数在原创 2012-09-28 16:49:20 · 1827 阅读 · 3 评论 -
无聊的双向冒泡排序
在网上看到了 both way bubble sort的算法,但是分析之后觉得在效率上等同于第二次优化的bubble sort。实现如下: void bothWayBubbleSort( int array[]) { int left = 0, right = array.length - 1; while (left < r原创 2013-03-12 16:48:06 · 1060 阅读 · 0 评论 -
单链表反序
单链表的每个节点都指向下一个节点,所以要想将单链表反序,需要同时知道相连的三个节点,这样将中间节点的指针指向前一个节点之后仍然可以继续向后遍历链表。算法实现如下:Node * singleLinkedListReverse(Node *head){ //判断空链表、单节点链表 if(null == head || null == head->next) {原创 2013-03-12 13:33:38 · 5297 阅读 · 4 评论 -
合并有序链表
合并两个升序链表,要点在于:边界条件判断,即链表可能为空。剩下的就是依次比较两个链表的头结点,把更小的节点放到新链表中去,继续遍历。算法实现如下:/*1: 边界条件判断2: 头结点的值3:*/Node * mergeOrderedLinkedList(Node *head1, Node *head2){ //边界条件判断 if(null == head1原创 2013-03-12 15:31:31 · 1046 阅读 · 0 评论 -
查找单链表中间节点
题目的解法当然不可能是一次遍历得到链表长度,然后再遍历一半,那是最最没办法的办法。在链表中很多题目的解法都跟大小指针有关。比如这道题目,设立两个指针,一个单步走,一个两步走,当大步指针到达链表尾部的时候,小步指针也正好位于链表中间位置。算法实现如下:Node * findMiddleNodeOfLinedList(Node *head){ //判断空链表、单节点链表 if原创 2013-03-12 13:49:14 · 7130 阅读 · 1 评论 -
面试之------判断单链表是否有环
某次面试中第一道题目,但是结果没思路。单链表的每个节点都单向指向下一个节点,所以如果有环则只可能是链表尾指向了前面的某个节点(可能是头节点或者任意)。下面是算法实现:bool is_loopList(listNode *head){ listNode *p1 = *p2 = head; //边界判断 if(null == head || null == h原创 2013-03-08 16:55:43 · 1001 阅读 · 0 评论 -
面试之------常用排序算法(冒泡,快排,插入 等)
来源:http://blog.csdn.net/agwujiang/article/details/5829443(一)冒泡排序(Bubble Sort)算法描述:每次都将最大的变量交换到最靠右的位置,第N次遍历肯定会将第n大的数字放到合适的位置,总共进行length-1次。算法实现: void bubbleSort(int array[]) { boolean exch原创 2013-03-06 18:37:36 · 1218 阅读 · 0 评论 -
我们爱面试,一面一学-----微软谷歌面试100题--【54】调整数组顺序使奇数位于偶数前面
同上一篇,这篇是看来的题目,自面试而已。题目:调整整数数组中元素的顺序,使所有奇数位于偶数的左面。这应该算快排的一部分思路:找到一个比较标准,然后从数组两头分别搜索,找到两个不符合的元素后,交换位置。C代码如下:#include #include void swap(int *q, int i, int j){ int temp = q[i]; q[i] =原创 2012-09-28 19:29:53 · 1683 阅读 · 0 评论 -
我们爱面试,一面一学-----JAVA堆、栈
烂俗的问题往往是最容易问到的问题,想必诸多面友都深有体会,因为我们和我们的面试官们都是俗人。但从另一方面来说,烂俗往往有着广阔的延伸空间,一次次让烂俗震惊你,不然于丹老师也就发不了财了。 言归正传,关于堆、栈真的很丰富、很值得研究。了解的不深,暂且按照个人的理解、思路来做笔记。 1---定义。堆、栈都是内存中的数据区,JVM用来存放程序中的数据,当然程序员是不可以原创 2012-09-27 12:02:59 · 2199 阅读 · 8 评论 -
也谈冒泡排序(bubble sort)---两次‘优化’
冒泡排序和优化原创 2013-03-12 11:53:15 · 2224 阅读 · 0 评论