当前位置:高考升学网 > 招聘笔试题 > 正文

2019美团网笔试题和面试题答案目

更新:2023-09-18 15:27:34 高考升学网

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 P, cur, new;

P = NULL;

cur = head;

while (cur != NULL) {

P = cur;

cur = cur->next;

}

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

new->data = data;

new->next = cur;

if (P == NULL)

head = new;

else

P->next = new;

}

void printLink(node head)

{

while (head->next != NULL) {

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

head = head->next;

}

printf("%d ", 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, Pv, next, old, tail;

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

old = head;

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

next = head->next;

head->next = Pv;

Pv = head;

head = next;

}

if (now == 0) {

newhead = Pv;

}

old->next = head;

if (tail != NULL) {

tail->next = Pv;

}

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;

}

最新图文

2020年河北新闻网两学一做

时间:2023-09-18 07:0:24

2020年河北新闻网两学一做

时间:2023-09-15 11:0:59

两学一做学习教育知

时间:2023-09-21 06:0:30

2020年开展两学一做学习教

时间:2023-09-19 21:0:30