发布于 2014-12-29 10:33:37 | 257 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

美团网

2010年3月4日成立的团购网站。美团网有着“美团一次,美一次”的宣传口号。为消费者发现最值得信赖的商家,让消费者享受超低折扣的优质服务;为商家找到最合适的消费者,给商家提供最大收益的互联网推广。


本文为大家整理的是一份美团网2014招聘笔试题目-技术类,回忆版,感兴趣的同学参考下。

2010年3月4日成立的团购网站。美团网有着“美团一次,美一次”的宣传口号。为消费者发现最值得信赖的商家,让消费者享受超低折扣的优质服务;为商家找到最合适的消费者,给商家提供最大收益的互联网推广。

以下为美团的试题:

   1、一堆硬币,一个机器人,如果是反的就翻正,如果是正的就抛掷一次,无穷多次后,求正反的比例

   解答:是不是题目不完整啊,我算的是3:1

   2、一个汽车公司的产品,甲厂占40%,乙厂占60%,甲的次品率是1%,乙的次品率是2%,现在抽出一件汽车时次品,问是甲生产的可能性

   解答:典型的贝叶斯公式,p(甲|废品) = p(甲 && 废品) / p(废品) = (0.4 × 0.01) /(0.4 × 0.01 + 0.6 × 0.02) = 0.25

   3、k链表翻转。给出一个链表和一个数k,比如链表1→2→3→4→5→6,k=2,则翻转后2→1→4→3→6→5,若k=3,翻转后3→2→1→6→5→4,若k=4,翻转后4→3→2→1→5→6,用程序实现

   非递归可运行代码:

   #include

   #include

   #include

   typedef struct node {

   struct node *next;

   int data;

   } node;

   void createList(node **head, int data)

   {

   node *pre, *cur, *new;

   pre = NULL;

   cur = *head;

   while (cur != NULL) {

   pre = cur;

   cur = cur->next;

   }

   new = (node *)malloc(sizeof(node));

   new->data = data;

   new->next = cur;

   if (pre == NULL)

   *head = new;

   else

   pre->next = new;

   }

   void printLink(node *head)

   {

   while (head->next != NULL) {

   printf("%d ", head->data);

   head = head->next;

   }

   printf("%dn", head->data);

   }

   int linkLen(node *head)

   {

   int len = 0;

   while (head != NULL) {

   len ++;

   head = head->next;

   }

   return len;

   }

   node* reverseK(node *head, int k)

   {

   int i, len, time, now;

   len = linkLen(head);

   if (len < k) {

   return head;

   } else {

   time = len / k;

   }

   node *newhead, *prev, *next, *old, *tail;

   for (now = 0, tail = NULL; now < time; now ++) {

   old = head;

   for (i = 0, prev = NULL; i < k; i ++) {

   next = head->next;

   head->next = prev;

   prev = head;

   head = next;

   }

   if (now == 0) {

   newhead = prev;

   }

   old->next = head;

   if (tail != NULL) {

   tail->next = prev;

   }

   tail = old;

   }

   if (head != NULL) {

   tail->next = head;

   }

   return newhead;

   }

   int main(void)

   {

   int i, n, k, data;

   node *head, *newhead;

   while (scanf("%d %d", &n, &k) != EOF) {

   for (i = 0, head = NULL; i < n; i ++) {

   scanf("%d", &data);

   createList(&head, data);

   }

   printLink(head);

   newhead = reverseK(head, k);

   printLink(newhead);

   }

   return 0;

   }



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务