摘要: 问题:一个动态长度可变的数字序列,以数字0为结束标志,要求将重复的数字用一个数字代替,例如:将数组 1,1,1,2,2,2,2,2,7,7,1,5,5,5,0 转变成1,2,7,1,5,0问题比较简单,要注意的是这个数组是动态的。所以避免麻烦我还是用了STL的vector。#include <iostream>#include <vector>using namespace... 阅读全文
posted @ 2009-10-03 16:35 tony smith 阅读(641) 评论(0) 推荐(0) 编辑
摘要: 题目定义了一种叫半素数的数:只要一个数能被分解成两个素数,那么这个数就是半素数。Prime Number DefinitionAn integer greater than one is called a prime number if its only positive divisors (factors) are one and itself. For instance, 2, 11, 67,... 阅读全文
posted @ 2009-10-03 16:17 tony smith 阅读(665) 评论(0) 推荐(1) 编辑
摘要: 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题。比如一个链表是这样的: 1->2->3->4->5 通过反转后成为5->4->3->2->1。最容易想到的方法遍历一遍链表,利用一个辅助指针,存储遍历过程中当前指针指向的下一个元素,然后将当前节点元素的指针反转后,利用已经存储的指针往后面继续遍历。源代码如下:struct linka... 阅读全文
posted @ 2009-10-03 14:24 tony smith 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 给定两个排好序的数组,怎样高效得判断这两个数组中存在相同的数字?这个问题首先想到的是一个O(nlogn)的算法。就是任意挑选一个数组,遍历这个数组的所有元素,遍历过程中,在另一个数组中对第一个数组中的每个元素进行binary search。用C++实现代码如下:int searchCommon(int a[],int size1,int b[],int size2){for(int i = 0; ... 阅读全文
posted @ 2009-10-03 14:03 tony smith 阅读(647) 评论(0) 推荐(0) 编辑