[经典面试题][暴风影音]暴风影音2014校招笔试题

合并两个已经排序的单链表为一个排序的单链表,相同内容只保留一个如:单链表a:1->2->3->4 单链表b:3->4->5 输出:1->2->3->4->5

具体参考:[LeetCode]21.Merge Two Sorted Lists

/*———————————————* 日期:2015-02-23* 作者:SJF0115* 题目: 合并排序链表* 来源:暴风影音* 博客:———————————————–using namespace std;struct ListNode{int val;ListNode *next;ListNode(int x):val(x),next(NULL){}};//ListNode* MergeSortedList(ListNode *list1,ListNode *list2){// 头节点ListNode *head = new ListNode(-1);ListNode *p = head;int val1,val2;// 合并while(list1 != NULL || list2 != NULL){val1 = (list1 == NULL) ? INT_MAX : list1->val;val2 = (list2 == NULL) ? INT_MAX : list2->val;// 相同内容只保留一个if(val1 == val2){p->next = list1;list1 = list1->next;list2 = list2->next;}//if// 当前链表1小else if(val1 < val2){p->next = list1;list1 = list1->next;}// 当前链表2小else{p->next = list2;list2 = list2->next;}p = p->next;}//whilereturn head->next;}int main() {int A[] = {1,2,4,7,9};int B[] = {1,3,4,8,9,11,12};// 链表1ListNode *head1 = new ListNode(A[0]);ListNode *p1 = head1;for(int i = 1;i < 5;i++){ListNode *node = new ListNode(A[i]);p1->next = node;p1 = node;}//for// 链表2ListNode *head2 = new ListNode(B[0]);ListNode *p2 = head2;for(int i = 1;i < 7;i++){ListNode *node = new ListNode(B[i]);p2->next = node;p2 = node;}//forListNode *head = MergeSortedList(head1,head2);// 输出ListNode *p = head;while(p){cout<<p->val<<” “;p = p->next;}//whilecout<<endl;}

2.编写程序,在原字符串中把尾部m个字符移动到字符串的头部,要求:长度为n字符串操作时间复杂度为O(n),时间复杂度为O(1)。 如:原字符串为”Ilovebaofeng”,m=7,输出结果:”baofengIlove”。

待续。。。。

3.暴风影音的片源服务器上保存着两个文件a和b,各存放50亿条URL,每条URL占用64字节,,内存限制是4G,让你找出a,b文件共同的URL。要求:算法设计。

待续。。。。

明天是世上增值最快的一块土地,因它充满了希望

[经典面试题][暴风影音]暴风影音2014校招笔试题

相关文章:

你感兴趣的文章:

标签云: