笔试
skip_yj
这个作者很懒,什么都没留下…
展开
-
链表转置(精益求精)
在微软某年的笔试题中看到了一段比较完美的链表转置代码,特在此与大家分享: struct node{ void* data; struct node* next; }; struct node* reverse(struct node*head) { struct node* prev, *curr, *next;原创 2013-05-09 18:24:05 · 413 阅读 · 0 评论 -
一道笔试题,求给定一个整数是否存在一个给定的矩阵中
给出一个矩阵,有下列特点:每行严格递增,每列严格递增,矩阵内没有重复元素 如:1 2 4 12 3 5 9 15 6 7 10 16 8 13 18 20 求K是否在矩阵中,写出思路和算法。 基本思路:因为各行各列都是单原创 2013-06-18 20:36:29 · 538 阅读 · 0 评论 -
最长递增子序列
一道面试题,最长递增子序列,使用二分查找+动态规划,时间复杂度为nlog(n)。写的时候发现二分查找的变种需要注意的细节还是挺多的。 #include #include #define MIN -999999 int binary_search(int val[], int size, int key) { int start, end, mid;原创 2013-06-21 15:04:44 · 402 阅读 · 0 评论 -
数组的组合和全排列
经典面试题: a)求一个全排列函数:如p([1,2,3]) ,输出: [123],[132],[213],[231],[321],[323]。 b)求一个组合函数: 如p([1,2,3]) ,输出:[1],[2],[3],[1,2],[2,3],[1,3],[1,2,3]。 对于组合和排列问题拿递归做是很方便的,下面给出代码: #include #include #i原创 2013-06-23 11:36:03 · 598 阅读 · 0 评论