為了OFFER系列 | 牛客網(wǎng)美團(tuán)點(diǎn)評(píng)數(shù)據(jù)分析刷題

      網(wǎng)友投稿 680 2025-04-02

      @Author:Runsen

      對(duì)于大學(xué)的每一個(gè)階段,都有著不同的意義,在大學(xué)期間一定要有明確的戰(zhàn)略、打法,以及人生布局,才能最大程度的提升自己,才能在未來走的更遠(yuǎn)。

      現(xiàn)如今大四,為了offer,沖啊

      下面題目都是來自美團(tuán)點(diǎn)評(píng)的2020春招的數(shù)據(jù)分析原題。

      文章目錄

      1、數(shù)據(jù)分析思維

      2、數(shù)據(jù)庫

      3、數(shù)學(xué)題

      4、編程題

      5、編程題

      6、編程題

      7、關(guān)聯(lián)查詢

      8、編程題

      9、編程題

      10、編程題

      1、數(shù)據(jù)分析思維

      廣告是互聯(lián)網(wǎng)企業(yè)重要的變現(xiàn)模式,在美團(tuán)的廣告業(yè)務(wù)中,商家會(huì)和美團(tuán)的銷售簽訂不同類型的廣告合同(比如,按點(diǎn)擊收費(fèi)的廣告cpc、按曝光收費(fèi)的廣告cpm、按時(shí)長收費(fèi)的廣告cpt)。美團(tuán)會(huì)為商家創(chuàng)建相關(guān)的廣告內(nèi)容素材創(chuàng)意(比如,門店圖片、活動(dòng)圖片、促銷文字等),并通過美團(tuán)的廣告引擎,根據(jù)用戶訪問的行為特征,基于算法策略將商家的廣告內(nèi)容投放到美團(tuán)的app或者外部合作伙伴(比如如:騰訊,頭條)的app不同的展示位置上。普通用戶訪問這些廣告后,會(huì)對(duì)商家產(chǎn)生興趣,可能產(chǎn)生購買轉(zhuǎn)換行為,美團(tuán)會(huì)和商家做廣告的計(jì)費(fèi)結(jié)算,同時(shí)為商戶提供用戶的廣告效果信息(比如:廣告帶來的門店訪問量、訂單數(shù)等)。

      1、 如果讓你對(duì)這個(gè)業(yè)務(wù)進(jìn)行抽象,你會(huì)抽象出哪些數(shù)據(jù)分析主題,并說出你這樣分的原因;

      2、 請(qǐng)你根據(jù)問題1抽象的主題,進(jìn)行主題模型設(shè)計(jì),并說明設(shè)計(jì)的模型內(nèi)容,以及模型之間的關(guān)系。

      1、 廣告素材特點(diǎn)和用戶訪問量的主題:用來分析不同特點(diǎn)和素材的廣告對(duì)吸引用戶訪問是否有較大的關(guān)系。 用戶訪問行為特征和最終購買行為主題:分析用戶在廣告頁面滑動(dòng)、點(diǎn)擊、停留等特征,是否對(duì)最終購買行為有較大的關(guān)系。 收費(fèi)模式、商戶類型、商戶付費(fèi)的關(guān)系:分析不同類型的商戶在不同模式下的付費(fèi)意愿,用于向未使用廣告業(yè)務(wù)的商戶推廣 投放時(shí)段和訪問量訂單數(shù)的關(guān)系:能帶來高訪問量或訂單數(shù)的投放時(shí)段,價(jià)格可以適當(dāng)調(diào)整 不同類型商戶廣告投放的效果分析:分析哪些類型商戶廣告投放效果較差,可以幫助商戶調(diào)整引流策略 2、 用戶訪問行為特征和最終購買行為主題:特征值可以選擇用戶點(diǎn)擊進(jìn)入廣告后的行為特征,包括滑動(dòng)速度、滑動(dòng)方向、停留時(shí)間、點(diǎn)擊等。 結(jié)合最終購買行為,用來分析用戶行為特征對(duì)購買行為的影響。可以實(shí)時(shí)預(yù)測用戶行為是否有較大幾率產(chǎn)生購買行為。對(duì)購買意愿弱的用戶,可以在頁面中實(shí)施其他推廣營銷策略,加強(qiáng)用戶的購買意愿。

      1

      2

      3

      4

      5

      6

      7

      8

      2、數(shù)據(jù)庫

      說明關(guān)系型數(shù)據(jù)庫通過索引提升查詢效率的背后原理 。

      1. 如果沒有索引,數(shù)據(jù)庫引擎需要通過全表掃描來查找數(shù)據(jù),這會(huì)產(chǎn)生大量的磁盤IO。 2. 關(guān)系型數(shù)據(jù)庫使用B+樹構(gòu)建索引來加速加快查詢。B+樹是一種二叉查找樹(每個(gè)節(jié)點(diǎn)的鍵值必須:比保存在左子樹的任何鍵值都要大,比保存在右子樹的任何鍵值都要小),這樣隨機(jī)查找某個(gè)鍵值時(shí)可以通過從根節(jié)點(diǎn)執(zhí)行二叉查找來加速查詢,查詢成本取決于樹的層數(shù)。 3. 針對(duì)范圍查詢和排序的優(yōu)化:在每個(gè)葉子節(jié)點(diǎn)保存其下一個(gè)葉子節(jié)點(diǎn)的指針,這樣當(dāng)指定范圍范圍查詢時(shí),先從根節(jié)點(diǎn)根據(jù)范圍的左值找到其葉子節(jié)點(diǎn),之后通過向后遍歷葉子節(jié)點(diǎn)即可找到對(duì)應(yīng)范圍右值,這樣可以加速范圍查詢、排序、分組等數(shù)據(jù)庫查詢動(dòng)作。 4. 針對(duì)磁盤讀寫速度的優(yōu)化:除了葉子節(jié)點(diǎn)之外的其他節(jié)點(diǎn)只保存鍵值,這樣對(duì)磁盤的單次讀寫可以獲取到盡可能多的數(shù)據(jù)。以MySQL為例,一個(gè)1000萬行的表對(duì)應(yīng)的B+樹按照主鍵查找理論上只需要3次磁盤IO,這相對(duì)于全表掃描帶來的磁盤IO是多個(gè)量級(jí)的性能提升。 5. MySQL等數(shù)據(jù)庫引擎在實(shí)際實(shí)現(xiàn)B+樹索引的時(shí)候,針對(duì)磁盤讀寫做了優(yōu)化:非葉子節(jié)點(diǎn)中只存放key值,葉子節(jié)點(diǎn)中除了key值也會(huì)存放數(shù)據(jù),按照存放數(shù)據(jù)的不同索引區(qū)分為主索引(聚簇索引)和輔助索引: a) 主索引的葉子節(jié)點(diǎn)中存放該key值對(duì)應(yīng)的完整記錄,使用主索引進(jìn)行查找時(shí),可以直接輸出記錄;一個(gè)表只能創(chuàng)建一個(gè)主索引。 b) 普通索引的葉子節(jié)點(diǎn)則存放對(duì)應(yīng)主鍵的值,因此在使用輔助索引進(jìn)行查找時(shí),需要先查找到主鍵值,然后再到主索引中進(jìn)行查找;一個(gè)表可以創(chuàng)建多個(gè)輔助索引。 6. 除了B+樹,關(guān)系型數(shù)據(jù)庫一般也支持哈希索引,哈希索引能夠非常高效地進(jìn)行隨機(jī)查找,但是對(duì)于范圍查詢、排序和分組都不支持。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      3、數(shù)學(xué)題

      【污水處理問題】一家污水處理廠通過去掉污水中有害的污物來凈化水質(zhì),生產(chǎn)出用于灌溉使用的水源。該處理過程每小時(shí)可以去掉處理池中剩余污物的12%。

      問:1.一天后處理池中將大概處理掉百分之幾的污物?

      2.要多長時(shí)間才能把污物的量減少一半?

      設(shè):初始污物量= a 0 a_0 a0 、處理x小時(shí)后的污物量= a x a_x ax

      于是得到污水處理模型: a x + 1 = a x ? a x ? 12 % = 0.88 a x a_x+1=a_x-a_x*12\%=0.88a_x ax +1=ax ?ax ?12%=0.88ax ,轉(zhuǎn)化為基礎(chǔ)表達(dá)式為 a x = ( 0.88 ) ? a 0 a_x=(0.88) * a_0 ax =(0.88)?a0 ,其中x為污水處理的小時(shí)數(shù)

      一天為24小時(shí),即 a 24 = ( 0.88 ) 24 ? a 0 ≈ 0.0465 ? a 0 a_{24}=(0.88)^{24}*a_0≈0.0465*a_0 a24 =(0.88)24?a0 ≈0.0465?a0 ,即一天后大于處理掉95.35%的污物;

      處理掉一半,即 a x = 0.5 ? a 0 a_x=0.5*a_0 ax =0.5?a0 , 0.5 = ( 0.88 ) x 0.5=(0.88)^x 0.5=(0.88)x, x = l o g 0.5 / l o g 0.88 ≈ 5.42 x=log0.5/log0.88≈5.42 x=log0.5/log0.88≈5.42小時(shí);

      4、編程題

      在4*4的棋盤上擺滿了黑白棋子,黑白兩色的位置和數(shù)目隨機(jī)其中左上角坐標(biāo)為(1,1),右下角坐標(biāo)為(4,4),現(xiàn)在依次有一些翻轉(zhuǎn)操作,要對(duì)一些給定支點(diǎn)坐標(biāo)為中心的上下左右四個(gè)棋子的顏色進(jìn)行翻轉(zhuǎn),請(qǐng)計(jì)算出翻轉(zhuǎn)后的棋盤顏色。

      (1)輸入描述:

      給定兩個(gè)數(shù)組,分兩行

      第一行為分別為初始棋盤,為 4 ? 4 4?4 4?4矩陣,其中0表示白色棋子,1表示黑色棋子

      第二行為翻轉(zhuǎn)位置,其中翻轉(zhuǎn)位置共有3個(gè)

      (2)輸出描述:請(qǐng)返回翻轉(zhuǎn)后的棋盤,為 4 ? 4 4?4 4?4矩陣

      (3)輸入例子:

      [[0,0,1,1],[1,0,1,0],[0,1,1,0],[0,0,1,0]] [[2,2],[3,3],[4,4]]

      1

      2

      (4)輸出例子:

      [[0,1,1,1],[0,0,1,0],[0,1,1,0],[0,0,1,0]]

      1

      思路: 將支點(diǎn)的前后左右都進(jìn)行翻轉(zhuǎn),需要明確支點(diǎn)的位置,就是對(duì)支點(diǎn)的位置進(jìn)行判斷,如果存在就翻轉(zhuǎn),這里的翻轉(zhuǎn)可以直接用1-color,具體代碼如下所示。

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      5、編程題

      尋找最后的山峰。山峰元素是指其值大于或等于左右相鄰值的元素。給定一個(gè)輸入數(shù)組 n u m s nums nums,任意兩個(gè)相鄰元素值不相等,數(shù)組可能包含多個(gè)山峰。找到索引最大的那個(gè)山峰元素并返回其索引。 假設(shè) n u m s [ ? 1 ] = n u m s [ n ] = ? ∞ nums[-1] = nums[n] = -∞ nums[?1]=nums[n]=?∞。

      (1)輸入描述:在命令行中輸入一行數(shù)字,數(shù)字之間以空格分割,遇到換行符結(jié)束。輸入的數(shù)字為整型,且總數(shù)量在10萬以內(nèi)。

      (2)輸出描述:輸出索引最大的山峰的索引值(一個(gè)數(shù)字)

      (3)輸入例子:2 4 1 2 7 8 4

      (4)輸出例子:5

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      6、編程題

      給定一個(gè)整數(shù)數(shù)組,返回一個(gè)數(shù)組。該返回?cái)?shù)組中第i個(gè)數(shù)字為,原數(shù)組中第i個(gè)位置的數(shù)字至少往右走多少步才能遇到比它大的數(shù)字。如果遇不到或者已經(jīng)處于最右的位置,則置為-1。

      輸入描述::輸入為多行,第一行為一個(gè)整數(shù)N,1≤N≤106

      接下來一共有N行,每一行為一個(gè)整數(shù)M,0≤M≤232-1

      輸出描述::輸出 N 行,每行一個(gè)數(shù)字表示轉(zhuǎn)換之后的數(shù)組

      輸入例子1:

      5 91 10 3 22 40

      1

      2

      3

      4

      5

      6

      輸出例子1:

      -1 2 1 1 -1

      1

      2

      3

      4

      5

      思路:棧方法

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      7、關(guān)聯(lián)查詢

      數(shù)據(jù)對(duì)象data1List,員工表,存儲(chǔ)員工ID,員工姓名

      數(shù)據(jù)對(duì)象data2List, 員工工作時(shí)長表,存儲(chǔ)員工ID,月份,工時(shí)

      計(jì)算每個(gè)員工1-3月每月工時(shí)及總工時(shí)

      輸入描述:

      員工ID 員工姓名 員工ID 月份 工時(shí) 月份 工時(shí) 月份 工時(shí)

      1

      2

      3

      輸出描述:

      員工姓名 空格 一月份工時(shí) 空格 二月份工時(shí) 空格 三月份工時(shí) 空格 總工時(shí)

      1

      輸入例子1:

      zhangwei01 01 200 02 150 03 196

      1

      2

      輸出例子1:

      zhangwei01 200 150 196 546

      1

      難度簡單。不說了,就是送分。

      data1List=input().strip().split(" ") data2List=input().strip().split(" ") print(data1List[1]+" "+data2List[2]+" "+data2List[4]+" "+ data2List[6]+" "+str(int(data2List[2])+int(data2List[4])+int(data2List[6])))

      1

      2

      3

      4

      8、編程題

      在實(shí)時(shí)計(jì)算中,數(shù)據(jù)流源源不斷地流入計(jì)算單元,經(jīng)常需要借助窗口來處理數(shù)據(jù),其中有一類窗口為滑動(dòng)窗口(Sliding Window),其特點(diǎn)是窗口長度固定,每次滑動(dòng)一定的位移(slide)

      現(xiàn)給定一個(gè)數(shù)組 nums,有一個(gè)長度為 k 的滑動(dòng)窗口從數(shù)組的最左側(cè)移動(dòng)到數(shù)組的最右側(cè)。注意你只可以看到在滑動(dòng)窗口 k 內(nèi)的數(shù)字,滑動(dòng)位移大小slide=1,即滑動(dòng)窗口每次只向右移動(dòng)一位。

      要求返回每一個(gè)滑動(dòng)窗口內(nèi)的中位數(shù),解釋中位數(shù)定義,例如:對(duì)于[2,3,4],中位數(shù)是3;對(duì)于[2,3],中位數(shù)是 (2 + 3) / 2 = 2.5

      注意:為了簡化窗口計(jì)算,規(guī)定如果沒有累計(jì)到窗口大小的數(shù),不能觸發(fā)計(jì)算,即不輸出結(jié)果!

      輸入描述:

      輸入兩個(gè)數(shù)字n,k。n表示數(shù)組長度,k表示窗口大小

      加下來n個(gè)整數(shù)用空格隔開,表示nums數(shù)組

      (1<=k<=n) (1<=n<=1000)

      1

      2

      3

      輸出描述:

      輸出若干個(gè)數(shù)字,表示滑窗依次移動(dòng)得到的結(jié)果,保留小數(shù)點(diǎn)后一位數(shù)字

      輸入 8 3 1 3 -1 -3 5 3 6 7 輸出 1.0 -1.0 -1.0 3.0 5.0 6.0

      1

      2

      3

      4

      5

      說明

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      為了OFFER系列 | 牛客網(wǎng)美團(tuán)點(diǎn)評(píng)數(shù)據(jù)分析刷題

      19

      20

      21

      22

      23

      9、編程題

      輸入年份月份,請(qǐng)輸出這個(gè)月的天數(shù)

      輸入描述:多組輸入輸出

      第一個(gè)參數(shù)為年份,如2018代表2018年,2019代表2019年

      第二個(gè)參數(shù)為月份,如1代表1月,2代表2月

      輸出描述:輸出當(dāng)月的實(shí)際天數(shù)。

      示例1 輸入 2018 2 2020 2 2019 1 輸出 28 29 31

      1

      2

      3

      4

      5

      6

      7

      8

      9

      難度簡單。不說了,就是送分。

      def solution(a,b): if b != 2: if b in [1,3,5,7,8,10,12]: return 31 else: return 30 else: # 判斷是不是閏年 if a % 100 != 0 and a % 4 ==0: return 29 elif a % 400 == 0: return 29 else: return 28 while True: try: year, month = map(lambda x:int(x),input().split(' ')) print(solution(year, month)) except: break

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      10、編程題

      整數(shù)分解:一個(gè)正整數(shù)N可以分解為 M ( M > 1 ) M(M>1) M(M>1)個(gè)正整數(shù)的和,即 N = K + L N=K+L N=K+L,例如 N = 5 N=5 N=5、 M = 2 M=2 M=2時(shí)可以分解為 ( 1 + 4 , 2 + 3 ) (1+4,2+3) (1+4,2+3)。

      給定一個(gè)正整數(shù) N ( 1 < N < 200 ) N(1

      示例1 輸入 5,2 輸出 2 # 遞歸 def solution(N, M): # 實(shí)際上就是N個(gè)球裝到M個(gè)杯子里,要求每個(gè)杯子都要有球,有多少種裝法。 if (M == 1) or (N - M == 1) or (N == M): dic[(N, M)] = 1 elif M == 2: dic[(N, M)] = int(N / 2) else: left, i, total = N - M, 1, 0 while left >= i and i <= M: if (left, i) in dic.keys(): total = total + dic[(left, i)] i = i + 1 else: solution(left, i) dic[(N, M)] = total if __name__ == '__main__': N, M = map(int, input().split(",")) dic = {} solution(N, M) print(dic[(N,M)])

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      如果你想跟博主建立親密關(guān)系,可以關(guān)注博主,或者關(guān)注博主公眾號(hào)“Python之王”,了解一個(gè)非本科程序員是如何成長的。

      博主ID:潤森,希望大家、評(píng)論、

      數(shù)據(jù)庫 數(shù)據(jù)挖掘

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:如何切換到老版本???(怎樣切換版本)
      下一篇:怎樣發(fā)出去(怎樣發(fā)出去的東西不想給別人看到全部怎么標(biāo)記)
      相關(guān)文章
      国产成人毛片亚洲精品| 亚洲一日韩欧美中文字幕在线| 亚洲人成电影青青在线播放| 国产成人无码综合亚洲日韩 | 亚洲精品国产精品乱码不卡 | 亚洲高清在线视频| 亚洲日本va中文字幕久久| 91麻豆精品国产自产在线观看亚洲| 亚洲国产精品人人做人人爱| 国产大陆亚洲精品国产| 日韩亚洲精品福利| 亚洲AV永久无码精品一区二区国产| 精品久久亚洲一级α| jizzjizz亚洲| 亚洲五月午夜免费在线视频| 亚洲情侣偷拍精品| 国产亚洲精品无码专区| 亚洲国产精品乱码一区二区| 亚洲AV无码乱码在线观看富二代| 亚洲AV日韩AV高潮无码专区| 亚洲免费在线播放| 亚洲码在线中文在线观看| 亚洲日韩在线视频| 亚洲最大天堂无码精品区| 亚洲sm另类一区二区三区| 国产91成人精品亚洲精品| 亚洲一区日韩高清中文字幕亚洲| 亚洲中文久久精品无码| 亚洲AV无码一区二区三区DV| 亚洲国产精品自在在线观看| 亚洲资源在线视频| 2019亚洲午夜无码天堂| 亚洲av乱码一区二区三区按摩 | 亚洲国产精品成人AV在线| 处破女第一次亚洲18分钟| 亚洲另类激情专区小说图片| 在线A亚洲老鸭窝天堂| 亚洲国产香蕉碰碰人人| 亚洲伊人久久大香线蕉影院| 亚洲欧美成人综合久久久| 亚洲人成网站观看在线播放|