一些笔试面试题
文章平均质量分 71
wanpower
这个作者很懒,什么都没留下…
展开
-
链表的基本操作
链表排序 二路归并(暂未实现) 基本思想:维护一个队列,从头便利链表,找到一段按降序排列的链表段,一段一段的分开,然后将它们按顺序入队,每次从对头取出两个进行归并,归并后的结果入队。 #include using namespace std; struct node{ int d; node *next; node(int x){d = x;next原创 2012-03-09 19:07:45 · 254 阅读 · 0 评论 -
求一个数组的最长递减子序列
比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2} 解法:动态规划,时间复杂度O(n^2) 状态方程,设r[i]表示以i结束的最长子序列的元素个数,则 r[i] = max{ s[j] , r[j] + 1} , 条件是a[i] #include using namespace std; int a[]={9,4,3,2,5,4}; //re原创 2012-03-09 19:33:51 · 636 阅读 · 0 评论 -
一些面试题
一个数组是由一个递减数列左移若干位形成的,比如{4,3,2,1,6,5}是由{6,5,4,3,2,1}左移两位形成的,在这种数组中查找某一个数。 解法:二分查找,只需要将下标移位就可以了。 #include using namespace std; int A[] = {4,3,2,1,6,5}; //左为正,右为负 int offset; int n; //偏移寻址 inline转载 2012-03-09 20:21:13 · 268 阅读 · 0 评论