2021年美團產品開發面試題

小編:管理員 565閱讀 2021.06.25

第1題:


95,88,71,61,50,()



95 - 9 - 5 = 81
88 - 8 - 8 = 72
71 - 7 - 1 = 63
61 - 6 - 1 = 54
50 - 5 - 0 = 45
40 - 4 - 0 = 36


第2題:


1,2,3.。。10球放入1,2,。。。。10個盒子里,恰好3個球與盒子標識不等,這樣的方法有幾種?



從標號為1,2,…,10的10個球中選出7個放到相應標號的盒中有10C7種,則剩下3個球的標號放在與其所在盒子的標號不一致的盒中、不妨設為1,2,3號球,則1,2,3號盒中所放球為2,3,1;3,1,2兩種,共10C7*2種。


第3題:


1,2,3,4,5組成的無重復數字的五位數中,大于23145且小于43521的共有幾個?



全部有5!=120個小于23145的有21xxx(3!=6個,1xxxx=4!=24個) 大于43521的有44xxx,45xxx,5xxxx,6+6+24=36個 120-24-36=60個,再去掉23145和43521自己,所以是58個。


第4題:


一次考試中,第一次大于等于80分的人數占70%,第二次75%,第三次85%,第四次90%,問四次考試中都80分的至少占?%



100-(100-70)-(100-75)-(100-85)-(100-90)=20(人)


第5題:


7人中派4人發言,甲乙至少一人參加,如果同時參加,不能相鄰,那么問不同的發言順序有幾種?



總的排法 - 沒有甲乙的 - 甲乙同時參加且相鄰的A7取4 - A5取4 -(C5取2 ×A2取2 × A3取3)
=840 - 120 - 120
=600


第6題:


 實現二叉樹每一個節點的左右子節點相互調換?



Status BiTree_Revolute(BiTree T)//左右子樹交換
{
if(!T) return OK;
BitNode *temp;
if(T->lchild!=NULL&&T->rchild!=NULL)
{
  temp=T->lchild;
        T->lchild=T->rchild;
  T->rchild=temp;
}
BiTree_Revolute(T->lchild);
BiTree_Revolute(T->rchild);
return OK;
}


第7題:


一個臺階一共n級,一次可跳1級,也可跳2級,編程實現計算共有幾種方法?并分析算法的時間復雜度



首先我們考慮最簡單的情況:如果只有1 級臺階,那顯然只有一種跳法,如果有2 級臺階,那就有兩種跳的方法了:一種是分兩次跳,每次跳1 級;另外一種就是一次跳2 級。
現在我們再來討論一般情況:我們把n 級臺階時的跳法看成是n 的函數,記為f(n)。當n>2 時,第一次跳的時候就有兩種不同的選擇:一是第一次只跳1 級,此時跳法數目等于后面剩下的n-1 級臺階的跳法數目,即為f(n-1);另外一種選擇是第一次跳2 級,此時跳法數目等于后面剩下的n-2 級臺階的跳法數目,即為f(n-2)。
因此n 級臺階時的不同跳法的總數f(n) = f(n-1) + f(n-2)。
我們把上面的分析用一個公式總結如下:
       /  1  (n=1)
f(n) =  2  (n=2)
       \  f(n-1) + (f-2)  (n>2)
分析到這里,相信很多人都能看出這就是我們熟悉的Fibonacci 序列。

參考代碼:
[cpp]

/*----------------------------

Copyright by yuucyf. 2021.08.16

-----------------------------*/  

  

#include "stdafx.h"  

#include <iostream>  

using namespace std;  

  

  

int JumpStep(int n)  

{  

    if (n <= 0)  return 0;  

    if (n == 1 || n == 2) return n;  

  

    return (JumpStep(n-1) + JumpStep(n-2));  

}  

  

int _tmain(int argc, _TCHAR* argv[])  

{  

    int nStep = 0;  

    cout << "請輸入臺階數:";  

    cin >> nStep;  

    cout << "臺階數為" << nStep << ",那么總共有" << JumpStep(nStep) << "種跳法." << endl;  

    return 0;  

}  



第8題:


設工廠甲和工廠乙次品率為1%和2%,現在從工廠甲和乙中分別占60%和40%的一批產品里隨機抽取一件,發現是次品,求該次品是由工廠甲生產的概率?



利用貝葉斯公式得P=(0.6*0.01)/(0.6*0.01+0.4*0.02)=3/7


關聯標簽: