广联达北邮宣讲笔试题
编程题
1.链表相比于数组不是其优点的是:存储空间小。
2.一群不同年龄的人,找出最小的年龄的差值(绝对值),时间复杂度小于O(n^2)
我的思路是:用快排将年龄排序(从小到大),然后用次小年龄减去最小年龄就是最小年龄差。
3.删除单向链表的给定的结点,时间复杂度为O(1)
链表结点定义:
struct linknode{
int key;
linknode * next
}
剑指offer有此题。
思路:用给定结点的下一节点的值覆盖给定结点的值,然后将下一节点删除。
假设给定结点为p
p->key=p->next->key;
p->next=p->next->next;
4.判断一个二叉树是不是平衡二叉树。
二叉树的定义:
struct node{
int data;
node * left;
node *right;
}
忘了啥是平衡二叉树了。。。
答案参考博客:http://blog.csdn.net/zz198808/article/details/7621275
5.判断给定的字符串符不符合给定的句法规则。
Sentence:Noun Verb
String :Sentence Conjunction Sentence
Noun:”Bird”,”Fish” etc
Verb: “Fly” etc
Conjunction:“and”,”or”,”not”
当时纠结于如何从字符串分解出单词了,没做出来。
恶心人的逻辑题就不细表了。。。反正不会做。。。
原文地址:http://blog.csdn.net/zhiruchen/article/details/39969315